Autor Beitrag
Feindsender64.3
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Fr 10.02.06 19:09 
Hi
Habe ein (für mich) ziemlich ungewöhnliches Problem und zwar möchte ich einfach einen String aus mehreren Teilstrings zusammensetzen. Kann eigentlich nicht so schwer sein, oder?
Dachte ich auch, bis ich folgenden Code schrieb:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
var element:integer;
    t,t2,ar,al:string; )

for element := 0 to ListBox1.Items.Count do begin
    ReadID3(ListBox1.Items.Strings[element]);

    Label2.Caption := ID3Tag.Album;
    Label6.Caption := ID3Tag.Artist;
    t := Pfad2.Text;               // zB. 'C:\musik'
    ar := ID3Tag.Artist;           // zB. 'Subway'
    al := ID3Tag.Album;            // zB. 'Hochzeit'

    t2 := t + '\' +ar+ '\' +al+ '\' +ExtractFileName(ListBox1.Items.Strings[element]);
    sleep(2000);                   // fürs Debugging, kleine Bremse
    edit1.Text := t2;

    count.Caption := inttostr(element);
    Application.ProcessMessages;
  end;


Das Problem: Im Editfeld steht (für das Beispiel) jetzt nur 'C:\musik\Subway'... alles danach fehlt.
Falls es von Interesse sein sollte, das Auslesen der ID3Tags geschieht mithilfe des Codes der auf dsdt unter Tipps & Tricks zu finden ist.

Ich hoffe jemand von euch kann mir da ganz schnell helfen. Bin mir fast sicher es ist nur ne Kleinigkeit die ich nicht beachtet habe ...

MFG
MSCH
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1448
Erhaltene Danke: 3

W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
BeitragVerfasst: Fr 10.02.06 19:34 
user profile iconFeindsender64.3 hat folgendes geschrieben:
Hi

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
var element:integer;
    t,t2,ar,al:string; )

for element := 0 to ListBox1.Items.Count[b]-1[/b] do begin
    ReadID3(ListBox1.Items.Strings[element]);

    Label2.Caption := ID3Tag.Album;
    Label6.Caption := ID3Tag.Artist;
    t := Pfad2.Text;               // zB. 'C:\musik'
    ar := ID3Tag.Artist;           // zB. 'Subway'
    al := ID3Tag.Album;            // zB. 'Hochzeit'

    t2 := t + '\' +ar+ '\' +al+ '\' +ExtractFileName(ListBox1.Items.Strings[element]);
    sleep(2000);                   // fürs Debugging, kleine Bremse
    edit1.Text := t2;

    count.Caption := inttostr(element);
    Application.ProcessMessages;
  end;



denke daran, dass
- Listen immer bei 0 bis n-1 laufen (siehe Quelltext)
- und vielleicht dein Edit-Feld eine Längenbegrenzung hat?

grez
MSch

_________________
ist das politisch, wenn ich linksdrehenden Joghurt haben möchte?
Feindsender64.3 Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Fr 10.02.06 19:54 
ups.. ja das -1 is mir wohl in der hektik entfallen.
also längenbegrenzung hat das teil nicht. mir ist aber im debugmodus folgedes aufgefallen: Die Rückgabewerte der Funktionen von ID3Tag enthalten solche Scherze (Beispiel für .Artist):
>> 'Subway to Sally'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 <<
Kann das sein dass er durch diese Nullzeichen, oder was auch immer, Probleme hat?
Quasi: Wie krieg ich das wieder weg?
MSCH
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1448
Erhaltene Danke: 3

W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
BeitragVerfasst: Fr 10.02.06 20:00 
nullterminierte Strings!
versuchs mit T:= strpas(variable)...

grez
msch

_________________
ist das politisch, wenn ich linksdrehenden Joghurt haben möchte?
Feindsender64.3 Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Fr 10.02.06 20:10 
habe folgendes so abgeändert:
ausblenden Delphi-Quelltext
1:
2:
    ar := strpas(ID3Tag.Artist);
    al := strpas(ID3Tag.Album);


bekomme daraufhin vom Compiler eins an Deckel: Nichtkompatible Typen 'ShortString' und 'PAnsiChar' ..

achja.. vllt hilft euch das hier: www.dsdt.info/tipps/?id=349
Feindsender64.3 Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Sa 11.02.06 13:52 
habe mich nun nach mehrmaligem Herumexperimentieren mit der Lösung zufreiden gegeben, dass ich den nullterminierten String in ein Label schreib und es im nächsten Schritt wieder aus Selbigem in einen String lese. Klappt so weit eigentlich wunderbar :)
Ich denke mal damit ist die Frage beantwortet.

Danke für eure Mithilfe.