read und write
Ich Speicher eine Datei..
Delphi-Quellcode:
Jetzt will ich prüfen ob der Eintrag existiert "EXTM3U" wenn vorhanden soll er nicht nochmals addiert werden.
{$REGION 'function SaveM3UFile'}
function TPlayList.SaveM3UFile(Filename: String; clear: BOOL = false): Boolean; var F: TextFile; Buffer: String; i: Integer; begin Result := True; try AssignFile(F, Filename); if (FileExists(Filename)) and (not Clear) then begin Append(F); end else if clear then Rewrite(F) else Rewrite(F); Writeln(F, '#EXTM3U'); for i := 0 to FFile.Count - 1 do begin Buffer := Format('#EXTINF:%s|%s|%s|%s', [FTime.Strings[i], FTitle.Strings[i], FArtist.Strings[i], FAlbum.Strings[i]]); Writeln(F, Buffer); Writeln(F, FFile.Strings[i]); end; CloseFile(F); except CloseFile(F); Result := False; end; end; {$ENDREGION} Er soll einmalig in die erste Zeile addiert wird. Dachte ich mir ist kein Problem.
Delphi-Quellcode:
Nur wenn ich schreibe kann ich nicht gleichzeitig lesen.
ReadLn(F, Buffer);
if Buffer = '#EXTM3U' then Continue; Wo liegt mein Denkfehler'? gruss |
AW: read und write
Zitat:
Vergiss das alles, verwende eine TStringlist. Mit stringlist.LoadFromfile kannst Du eine Textdatei laden, die dabei gleich zeilenweise zerlegt wird. Danach kannst du die stringlist nach belieben manipulieren und schließlich per stringlist.Savetofile wieder in eine Datei schreiben. Eine existierende Datei wird dabei überschrieben. |
AW: read und write
Zitat:
Ich schreibe mit Win32Api mitteln und verwende nicht überall TStringList nur weil es bequemer ist. Meine Anwendungen basieren auf NONVCL.. ja ich weis auch dort kann man TStringList verwenden. Ich suche eine Lösung für Meine Anwendungsweise. Es muss doch möglich sein während des Schreibens vorher\gleichzeitig zu prüfen ob der Eintrag in der Datei existiert. Danke.. gruss |
AW: read und write
Zitat:
Delphi-Quellcode:
;-)
I := 0;
if FileExists While not eof do Readln(F,Array[i]) inc(I) Work... if not(Array[0] = 'Whatever') Writeln('Whatever') For i:=0 to high(Array) do Writeln(f,Array[i]) |
AW: read und write
Werde es mal testen danke für die Informationen..
Leider nicht. PS: E\A error.. gruss |
AW: read und write
Zitat:
|
AW: read und write
Zitat:
Delphi-Quellcode:
Hier kracht es schon.. direkt nach dem öffnen.
Readln(F,Array[i])
Hatte hier natürlich ein entsprechendes Array vorher erstellt nicht deine Definition. Falls du das denkst. also fakt ich komme gar nicht erst zum lesen ich öffne die Datei und es kracht. Kein Problem werde mir eine Lösung erarbeiten. Trotzdem Danke nochmals. gruss |
AW: read und write
Zitat:
sondern
Delphi-Quellcode:
Zeig mal den Code PLS
Var
S : TArray<String>; |
AW: read und write
Zitat:
Zitat:
File öffnen..
Delphi-Quellcode:
gruss
var
CheckM3U: array of string; i: Integer; begin I := 0; AssignFile(F, Filename); SetLength(CheckM3U, FFile.Count); While not eof do Readln(F, CheckM3U[i]); // crash.. inc(I); end; |
AW: read und write
File öffnen..
Delphi-Quellcode:
Also eher:
var
CheckM3U: array of string; i: Integer; begin AssignFile(F, Filename); SetLength(CheckM3U, FFile.Count); // <- das ist eine Textdatei File Count ist nicht die Zeilen Anzahl Reset(f); // Fehlte I := 0; // Fehlte While not eof do Readln(F, CheckM3U[i]); // crash.. logisch inc(I); end;
Delphi-Quellcode:
var
f : Textfile; CheckM3U: array of string; i,Grow: Integer; begin Grow := 100; AssignFile(F, Filename); SetLength(CheckM3U,Grow); Reset(f); // Fehlte I := 0; // Fehlte While not eof do begin if I > high(CheckM3U) then setlength(CheckM3U,Length(CheckM3U)+Grow); Readln(F, CheckM3U[i]); // crash.. logisch inc(I); end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz