Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Hilfe bei Textdatei auslesen (https://www.delphipraxis.net/19261-hilfe-bei-textdatei-auslesen.html)

phlux 31. Mär 2004 11:04


Hilfe bei Textdatei auslesen
 
Hoi :hi:
Nach langer Zeit hab ich mal wieder nen Prob wo ich net weiter weiß :lol: ´
Vllt könnt ihr mir ja helfen. Also ich habe eine Textdatei, die beinahe so aufgebaut ist wie ein IniFile, aber nur beinahe, und diese möchte ich jetzt mit Delphi auslesen, vllt hat von euch jemand eine Idee/Tipp wie dies am besten(und am einfachsten ;) ) gelingt:

Code:
PERFORMER "VA"
TITLE "CD Title"
FILE "Filename.mp3" MP3
  TRACK 01 AUDIO
    TITLE "Title 01"
    PERFORMER "Artist 01"
    INDEX 01 00:00:00
  TRACK 02 AUDIO
    TITLE "Title 02"
    PERFORMER "Artist 02"
    INDEX 01 06:35:68
  TRACK 03 AUDIO
    TITLE "Title 03"
    PERFORMER "Artist 03"
    INDEX 01 12:58:73
Hoffe ihr wisst ne Lösung :)

mfg phluphlu :hi:

Nikolas 31. Mär 2004 11:10

Re: Hilfe bei Textdatei auslesen
 
Ich weiss jetzt nicht genau ob du das meinst aber dass hier sind so die wichtigsten Befehle bei txt Datein:

assignfile
readln
und wenn du den Text zwischen den '' suchen willst, wird die 'pos' weiterhelfen

phlux 31. Mär 2004 11:17

Re: Hilfe bei Textdatei auslesen
 
Ja geht schon in die Richtung was ich suche, ich möchte halt die einzelnen Werte (Titel, Performer, Index) auslesen können, gibts vllt noch ne komfortablere Methode als mit AssignFile, Pos, etc.? ;)

Ghostwalker 31. Mär 2004 11:58

Re: Hilfe bei Textdatei auslesen
 
also am einfachsten dürfte sein, wenn du dir die Datei erstmal in den Speicher holst



Code:
   Stringlist := TStringlist.create;
   Stringlist.LoadFromFile('Text.txt');
Damit hast du schon mal alle Zeilen im Speicher.

Jetzt brauchst du nur noch die Zeilen in einer Schleife durchgehen und die benötigten infos
rauskopieren (pos,copy)

Beispiel:

Code:
   //Alle Zeilen der Liste durchgehen
   for I := 0 to Stringlist.count -1 do
   Begin
     //Schauen wir mal ob wir eine Titel-Zeile haben
     P := pos('TITLE',Stringlist.strings[i]);
     if (p > 0) then
     begin
       //Wir haben eine Titelzeile und kopieren den Titel der zwischen den "" steht raus
       P := pos ('"',Stringlist.strings[i]);
       MeinTitel := copy(Stringlist.strings[i],p,length(stringlist.strings[i])-p);
     end
   end;

phlux 31. Mär 2004 12:41

Re: Hilfe bei Textdatei auslesen
 
Okay, wenn es keine andere Möglichkeit gibt, muss ich es wohl so machen :| danke euch beiden für die tipps und den codesnippet :thumb:

mfg phlux :hi:

SirThornberry 31. Mär 2004 12:53

Re: Hilfe bei Textdatei auslesen
 
Und wiedermal poste ich die funktion die es eigentlich schon paar mal im Forum hier gibt.
Delphi-Quellcode:
function splitOutIndex(Source: String; Delimiter: String; Index: Integer): String;
var count, number: Integer;
    giveback: String;
begin
count := 1;
number := 0;
giveback := '';
while count <= length(Source) do
begin
  if copy(Source, count, length(Delimiter)) = Delimiter then
  begin
   number := number + 1;
   count := count + length(Delimiter);
  end else begin
   if number = Index then giveback := giveback + Source[count];
   count := count + 1;
  end;
end;
result := giveback;
end;
Für Beispiele zur anwendung einfach mal das Forum nach Hier im Forum suchensplitOutIndex durchsuchen

phlux 31. Mär 2004 23:45

Re: Hilfe bei Textdatei auslesen
 
Danke lieber großer Gummibär ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:56 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