Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Frage zu PChar und String (https://www.delphipraxis.net/24587-frage-zu-pchar-und-string.html)

CepheidenX 23. Jun 2004 12:17


Frage zu PChar und String
 
Hi

Ich hatte ebend ein Problem und frag mich ob meine Lösung für dieses sauberer gelöst werden könnte bzw. wie man es evntl. sauberer lösen könnte.

Ist ein sehr einfaches Problem.

ich lese die Id3v2 Taginformationen von MP3 Dateien aus. Und bei manchen Feldern ist es möglich mehere Einträge anzu legen. Zum Beispiel beim Tag-Genre ist das so, die einzelnen Genre werden dann normal als nullterminierte Liste gehandhabt. D.h. die Bezeichnungen für die Genre werden durch nullterminiert getrennt (#0).
Das problem ist nun die weitere Verarbeitung.
Strings macht ein #0 nichts aus. Sie verabeiten das ja als normale Zeichen. Also kann ich auch ganznormal etwas anhängen. Allerdings geht das verloren wenn ich diesen String später in ein PChar umwandel.

Die lösung ist einfach. man muss das #0 beim ausgelesenen Genre String entfernen.

Ich hab das durch etwas wie:
Code:
Genre := PCHAR(Genre);
gelöst.
Funktionieren tut es. Aber irgendwie glaub ich das ist zwar schön einfach gelöst ist aber es von der programmiertechnischen Seite bessere Lösungen gibt.

Was meint ihr. Mach ich mir da völlig umsonst einen Kopf?

Dax 23. Jun 2004 12:22

Re: Frage zu PChar und String
 
Wenn du etwas auslesen willst, das keine feste Länge hat, würde ich empfehlen, einen string mit SetLength auf viel zu viele Zeichen Länge zu setzten, die Daten zu lesen und dann evtl. an den #0-Chars uz trennen.

CepheidenX 23. Jun 2004 12:30

Re: Frage zu PChar und String
 
Das Auslesen der nulterminierten liste funktioniert einwandfrei
Es geht nur darum den einfach und gut den ersten nullterminierten string zu erhalten.

Dax 23. Jun 2004 12:33

Re: Frage zu PChar und String
 
In diesem Fall ist dein Ansatz der beste mir bekannte.

Glückwunsch!

nailor 23. Jun 2004 16:10

Re: Frage zu PChar und String
 
ja mit PChar(String) typecasten.

Motzi 23. Jun 2004 20:47

Re: Frage zu PChar und String
 
In diesem Zusammenhang mal wieder ein Hinweis auf mein String-Tutorial in dem das alles auführlich behandelt wird.. ;) www.manuel-poeter.de


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