Entwickler-Ecke
Sonstiges (Delphi) - Probleme beim Zusammenfügen von Strings
Feindsender64.3 - Fr 10.02.06 19:09
Titel: Probleme beim Zusammenfügen von Strings
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:
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; ar := ID3Tag.Artist; al := ID3Tag.Album; t2 := t + '\' +ar+ '\' +al+ '\' +ExtractFileName(ListBox1.Items.Strings[element]); sleep(2000); 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 - Fr 10.02.06 19:34
Titel: Re: Probleme beim Zusammenfügen von Strings
Feindsender64.3 hat folgendes geschrieben: |
Hi
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; ar := ID3Tag.Artist; al := ID3Tag.Album; t2 := t + '\' +ar+ '\' +al+ '\' +ExtractFileName(ListBox1.Items.Strings[element]); sleep(2000); 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
Feindsender64.3 - 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 - Fr 10.02.06 20:00
nullterminierte Strings!
versuchs mit T:= strpas(variable)...
grez
msch
Feindsender64.3 - Fr 10.02.06 20:10
habe folgendes so abgeändert:
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:
http://www.dsdt.info/tipps/?id=349
Feindsender64.3 - 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.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!