AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zeilen in einem String zählen

Ein Thema von lbccaleb · begonnen am 8. Mai 2012 · letzter Beitrag vom 9. Mai 2012
Antwort Antwort
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#1

Zeilen in einem String zählen

  Alt 8. Mai 2012, 15:25
Gefunden habe ich erstmal das:

http://www.delphipraxis.net/51285-ze...trahieren.html

Das ist so schon ganz fein, allerdings Blick ich den Code noch nicht 100%ig.
Ich habe es so umgemodelt:

Delphi-Quellcode:
function CountStringLines(const S: AnsiString): Integer;
var i, i2, i3, i4: Integer;
  begin;
    Result := 0;
    i := 1; i2 := 1; i3 := 1;
    while i <= Length(S) do begin
      if i2 <= i then begin i2 := PosEx(#13, S, i); if i2 = 0 then i2 := Length(S) + 1; end;
      if i3 <= i then begin i3 := PosEx(#10, S, i); if i3 = 0 then i3 := Length(S) + 1; end;
      if i2 < i3 then i4 := i2 else i4 := i3;

      i := i4;
      if (i <= Length(S)) and (S[i] = #13) Then Inc(i);
      if (i <= Length(S)) and (S[i] = #10) Then Inc(i);
      Inc(Result);
    end;
  end;
Das scheint erstmal so zu funktionieren, wie es soll.
Nun ist mein Problem eigenltich nur, ob man es so machen kann wie ich es Umgebaut hab. Nicht das in bestimmten Fällen irgendwas unvorhergesehenes passiert, da ich nicht wirklich weis, was ich da getan hab muss ich zugeben

Vllt kann himitsu ja dazu was genaueres sagen
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Zeilen in einem String zählen

  Alt 8. Mai 2012, 15:35
Wenn in Deinem String Kein CRLF vorhanden ist, dann bekommt i4 keinen Wert, und das könnte unangenehm werden.

Und ich würde die vielen Is mit etwas aussagekräftigeren Namen versehen.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.656 Beiträge
 
Delphi 12 Athens
 
#3

AW: Zeilen in einem String zählen

  Alt 8. Mai 2012, 15:37
Mehrere Befehle in einer Zeile sind ja auch nicht der Hit im Bezug auf Lesbarkeit.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#4

AW: Zeilen in einem String zählen

  Alt 8. Mai 2012, 15:41
[OT]
Du kennst doch bestimmt noch die Zeitungen, die ein komplettes TP-Programm als 4 Zeiler abgedruckt haben? [/OT]

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.656 Beiträge
 
Delphi 12 Athens
 
#5

AW: Zeilen in einem String zählen

  Alt 8. Mai 2012, 15:44
[OT] 1 Kilo Byte? Kenn ich noch [/OT]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.779 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Zeilen in einem String zählen

  Alt 8. Mai 2012, 15:47
.. sollte das Problem denn nicht auch mit einer TStringList zu erschlagen sein.

Delphi-Quellcode:
function CountStringLines(const S: AnsiString): Integer;
var
  sl: TStringList; // nachträglich eingefügt
begin
  result := 0;
  sl := TStringList.create;
  try
    sl.Text := s;
    result := sl.count;
  finally
    sl.free;
  end;
end;
Klaus

Geändert von Klaus01 ( 8. Mai 2012 um 16:24 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz