AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

read und write

Ein Thema von EWeiss · begonnen am 30. Jun 2019 · letzter Beitrag vom 1. Jul 2019
Antwort Antwort
EWeiss
(Gast)

n/a Beiträge
 
#1

AW: read und write

  Alt 30. Jun 2019, 15:30
Zitat:
erst die Datei zum lesen öffnen, den gewünschten Teil lesen, die Datei wieder schließen und dann zum Schreiben wieder öffnen.
Mache ich ja siehe letzter Beitrag..
Delphi-Quellcode:
    SList := TStringList.create;
     SList.LoadFromFile(Filename); // öffnen
     if SList.Strings[0] = '#EXTM3Uthen // Bereich auslesen
       CheckM3U := true;
     SList.Free; // schließen

     AssignFile(F, Filename); // öffnen
oder..
Delphi-Quellcode:
    AssignFile(F, Filename); // öffnen
    Reset(F); // Zeilenanfang
    while not Eof(F) do
    begin
      ReadLn(F, Buffer);
      if Buffer = '#EXTM3Uthen // gefunden
      begin
        CheckM3U := true;
        break; // raus hier
      end;
    end;
    CloseFile(F); // schließen
ohne Array !!

gruss

Geändert von EWeiss (30. Jun 2019 um 15:40 Uhr)
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#2

AW: read und write

  Alt 30. Jun 2019, 15:37
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;

Geändert von DieDolly (30. Jun 2019 um 16:54 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#3

AW: read und write

  Alt 30. Jun 2019, 15:38
Danke.. habe meinen Beitrag nochmals editiert.
Denke so geht s
Auch ohne TStringList.

Zitat:
Manche Leute haben halt eine masochistische Ader
Du hast so recht.. schwer warm heute, von daher verzeih mir noch mal meine Herangehensweise.

gruss

Geändert von EWeiss (30. Jun 2019 um 15:55 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.154 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: read und write

  Alt 30. Jun 2019, 16:46
Mache ich ja siehe letzter Beitrag..
Delphi-Quellcode:
    SList := TStringList.create;
     SList.LoadFromFile(Filename); // öffnen
     if SList.Strings[0] = '#EXTM3Uthen // Bereich auslesen
       CheckM3U := true;
     SList.Free; // schließen

     AssignFile(F, Filename); // öffnen
ohne Array !!
Echt jetzt? Den ganzen File in Memory laden um festzustellen, ob in der 1. Zeile ein Token steht...
Und wenn es eh schon im Speicher ist, dann nicht die List ergänzen und SavetoFile…

omg... Ich gebe auf.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#5

AW: read und write

  Alt 30. Jun 2019, 16:54
Mache ich ja siehe letzter Beitrag..
Delphi-Quellcode:
    SList := TStringList.create;
     SList.LoadFromFile(Filename); // öffnen
     if SList.Strings[0] = '#EXTM3Uthen // Bereich auslesen
       CheckM3U := true;
     SList.Free; // schließen

     AssignFile(F, Filename); // öffnen
ohne Array !!
Echt jetzt? Den ganzen File in Memory laden um festzustellen, ob in der 1. Zeile ein Token steht...
Und wenn es eh schon im Speicher ist, dann nicht die List ergänzen und SavetoFile…

omg... Ich gebe auf.
Echt jetzt?
Liest du eigentlich auch was anderes als nur das was dir so gefällt?
Nochmal extra für dich!

Delphi-Quellcode:
    AssignFile(F, Filename); // öffnen
     Reset(F); // Zeilenanfang
     while not Eof(F) do
     begin
       ReadLn(F, Buffer);
       if Buffer = '#EXTM3Uthen // gefunden
       begin
         CheckM3U := true;
         break; // raus hier
       end;
     end;
     CloseFile(F); // schließen
Den Post hättest du dir gerne sparen können denn er war unnötig.
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.

Readln(F,Array[i]) Hier kracht es schon.. direkt nach dem öffnen.
Ich hoff Du hast es so nicht geschrieben...

sondern

Delphi-Quellcode:
Var
  S : TArray<String>;
Zeig mal den Code PLS
Nur eines der Beispiele. .Das du mich für so blöd hältst das ich mein Array so auslegen würde spricht schon für sich.
OK! Ist gut Thema erledigt.. Trotzdem Danke.

gruss

Geändert von EWeiss (30. Jun 2019 um 17:04 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.154 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: read und write

  Alt 1. Jul 2019, 10:36
Möchtest du mich diffamieren oder was bezweckst du damit!
Nein, natürlich nicht - wenn Du es so aufgefasst hast, entschuldige ich mich hierfür...
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#7

AW: read und write

  Alt 1. Jul 2019, 10:42
Möchtest du mich diffamieren oder was bezweckst du damit!
Nein, natürlich nicht - wenn Du es so aufgefasst hast, entschuldige ich mich hierfür...
Danke! Und vergessen..

gruss
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#8

AW: read und write

  Alt 30. Jun 2019, 17:03
Echt jetzt? Den ganzen File in Memory laden um festzustellen, ob in der 1. Zeile ein Token steht...
Vielleicht so?
Delphi-Quellcode:
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();
Kann man eventuell noch umschreiben, sodass #EXTM3U reingeschrieben wird, wenn es nicht existiert.

Geändert von DieDolly (30. Jun 2019 um 18:39 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#9

AW: read und write

  Alt 30. Jun 2019, 17:06
Zitat:
Vielleicht so?
Das Thema ist doch erledigt
Ich sehe jetzt keinen Anlass hier noch was zu ändern.
Es tut was es soll.

Delphi-Quellcode:
    AssignFile(F, Filename); // öffnen
      Reset(F); // Zeilenanfang
      while not Eof(F) do
      begin
        ReadLn(F, Buffer);
        if Buffer = '#EXTM3Uthen // gefunden
        begin
          CheckM3U := true;
          break; // raus hier
        end;
      end;
      CloseFile(F); // schließen
gruss
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

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

AW: read und write

  Alt 30. Jun 2019, 22:01
Entschuldige wenn ich darauf herum reite. Wenn '#EXTM3U' in der ersten Zeile steht, dann reicht es auch, die erste Zeile zu lesen.
Sollte der Text in der 1. oder 2. oder 3. oder... Zeile stehen, dann

Delphi-Quellcode:
var
  buffer : array [0..$FFFF] of byte; // macht es etwas schneller
  enthaltext3m3u : boolean;

enhaltext3mu:=false;
assignfile(f,Myfile);
reset(f,buffer);
while not(eof(f)) and (mystring<>'#EXTM3U') do
begin
  readln(f,mystring);
  enthaltext3mu;)mystring='#EXTM3U';
end;
closefile(f);
assignfile(f,myfile);
if enthaltext3mu and not(clear) then
  reset(f,buffer)
else
  rewrite(f,buffer);
(ohne gewähr!)

Ich hoffe ich hab an alles gedacht.

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

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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:06 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