AW: read und write
Delphi-Quellcode:
Du hast mich nicht zu ende schreiben lassen hatte es zu früh abgeschickt da von Hand getippt. )
I := 0; // Fehlte
Zitat:
btw.. Dein Grow auch nicht ;) Zitat:
werde es nochmal testen Danke. gruss |
AW: read und write
Zitat:
|
AW: read und write
Ich mache eine Kombination von beiden und gut ist.
Ist mir jetzt zu viel Arbeit die Zeilenlänge des Textes von Hand zu ermitteln. so geht's und gut ist :)
Delphi-Quellcode:
gruss
function TPlayList.SaveM3UFile(Filename: String; clear: BOOL = false): Boolean;
var F: TextFile; Buffer: String; i: Integer; CheckM3U: BOOL; SList: TStringList; begin Result := True; CheckM3U := false; try SList := TStringList.create; SList.LoadFromFile(Filename); if SList.Strings[0] = '#EXTM3U' then CheckM3U := true; SList.Free; AssignFile(F, Filename); if (FileExists(Filename)) and (not Clear) then begin Append(F); end else if clear then Rewrite(F) else Rewrite(F); if not CheckM3U then 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; |
AW: read und write
Zitat:
|
AW: read und write
Zitat:
Delphi-Quellcode:
oder..
SList := TStringList.create;
SList.LoadFromFile(Filename); // öffnen if SList.Strings[0] = '#EXTM3U' then // Bereich auslesen CheckM3U := true; SList.Free; // schließen AssignFile(F, Filename); // öffnen
Delphi-Quellcode:
ohne Array !!
AssignFile(F, Filename); // öffnen
Reset(F); // Zeilenanfang while not Eof(F) do begin ReadLn(F, Buffer); if Buffer = '#EXTM3U' then // gefunden begin CheckM3U := true; break; // raus hier end; end; CloseFile(F); // schließen gruss |
AW: read und write
Hier eine kleine Verbesserung basierend auf deinem Ansatz
Delphi-Quellcode:
CheckM3U := False;
if (FileExists(Filename)) then // LoadFromFile geht in die Hose, wenn die Datei nicht existiert begin SList := TStringList.Create; try SList.LoadFromFile(Filename); CheckM3U := SList.Text.StartsWith(#EXTM3U); finally SList.Free; // schließen end; AssignFile(F, Filename); // öffnen ... end; |
AW: read und write
Danke.. habe meinen Beitrag nochmals editiert.
Denke so geht s ;) Auch ohne TStringList. Zitat:
gruss |
AW: read und write
Zitat:
Und wenn es eh schon im Speicher ist, dann nicht die List ergänzen und SavetoFile… omg... Ich gebe auf. |
AW: read und write
Zitat:
Liest du eigentlich auch was anderes als nur das was dir so gefällt? Nochmal extra für dich!
Delphi-Quellcode:
Den Post hättest du dir gerne sparen können denn er war unnötig.
AssignFile(F, Filename); // öffnen
Reset(F); // Zeilenanfang while not Eof(F) do begin ReadLn(F, Buffer); if Buffer = '#EXTM3U' then // gefunden begin CheckM3U := true; break; // raus hier end; end; CloseFile(F); // schließen Möchtest du mich diffamieren oder was bezweckst du damit! Ohne dein ominöses Array.. Sorry das musste jetzt sein. Manchmal fällt einem nichts ein deshalb aber versuchen hier jemand zur Schau zu stellen ist auch nicht die feine Art. Zitat:
OK! Ist gut Thema erledigt.. Trotzdem Danke. gruss |
AW: read und write
Zitat:
Delphi-Quellcode:
Kann man eventuell noch umschreiben, sodass #EXTM3U reingeschrieben wird, wenn es nicht existiert.
function IsM3UFile(const AFileName: string): BOOLEAN;
var FileStream: TFileStream; LineBuffer: TBytes; Encoding: TEncoding; Line: string; begin Result := False; FileStream := TFileStream.Create(AFileName, fmOpenRead); try SetLength(LineBuffer, 7); FileStream.Read(LineBuffer[0], Length(LineBuffer)); TEncoding.GetBufferEncoding(LineBuffer, Encoding); Result := Encoding.GetString(LineBuffer).StartsWith('#EXTM3U'); finally FileStream.Free; end; end; B := IsM3UFile(); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:13 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