![]() |
Anzahl der Zeichen in einer Zeile
Hallo,
ich habe einen textdatei eingelesen und wollte jetzt ausgeben wie viele zeichen eine zeile enthält. wie mache ich das??? |
Re: Anzahl der Zeichen in einer Zeile
Wenn du es mit der Methode LoadFromFile der Klasse TStrings (oder der Nachkommen) gemacht hast, dann kannst du das mit Length(StringsObjekt.Items[ZeilenNummer]) machen...
|
Re: Anzahl der Zeichen in einer Zeile
hier einmal mei code den ich bis jetzt habe:
Delphi-Quellcode:
ich verstehe nicht was ich jetzt machen soll.
procedure TForm1.Button1Click(Sender: TObject);
var open : TOpenDialog; f : TextFile; z : array of char; i : Integer; s : String; begin SetLength(z,10); open:=TOpenDialog.Create(self); if open.Execute then begin AssignFile(f, open.FileName); Reset(f); for i:=0 to 9 do begin Read(f, z[i]); end; CloseFile(f); for i:=0 to 9 do begin s:=s+z[i]; end; Label1.Caption:=s; end; end; Mit freundlichen Grüßen Christian18 |
Re: Anzahl der Zeichen in einer Zeile
ein paar wichtige Sachen:
-Dein Compiler sagt sicherlich: 'Variable 's' möglicherweise nicht initialisiert'; So hast du in 's' immer noch Speichermüll drin und bekommst nie ein richtiges Ergebniss. Du gehst davon aus, dass deine Datei immer aus 10 Einträgen besteht. Wenn du schreibst'
Delphi-Quellcode:
werden alle Zeilen eingelesen.
reset(f);
while not EOF(f) do readln(f,sonstwohin); READ ist für typisierte Dateien, um Textdateien zu lesen ist ReadLn der richtige Weg. Wenn du einen Opendialog schon dynamisch erstellst, solltest du ihn auch wieder freigeben. Im Zweiten for-Teil schreibst du alle Zeilen hintereinander. Wenn du wirklich nur die Zeichenanzahl in deiner Datei haben willst, kannst du die Zeilen auch nur in eine string-Variable einlesen, also:
Delphi-Quellcode:
Ist jetzt nicht getestet aber in die Richtung sollte was gehen
str:string; i: integer;
... Assignfile(f,open.filename); reset(f); i:=0; while not EOF(f) do begin readln(f,str); inc(i,length(str)); end; label1.caption:='Hier hab ich grad '+inttostr(i)+' Zeichen gefunden.'; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:08 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 by Thomas Breitkreuz