Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi PAnsiChar für Format() umwandeln (https://www.delphipraxis.net/53876-pansichar-fuer-format-umwandeln.html)

sBorchert 24. Sep 2005 12:21


PAnsiChar für Format() umwandeln
 
Moin!
Ich lese mittels der Komponente "vgMySQL" [http://www.tsinet.ru/~vg/] Preise aus einer MySQL-DB aus.
Der entprechende Aufruf (gekürzt):
Code:
01 procedure TForm1.getPrice;
02 var preis: PAnsiChar;
03     preisStr: String;
04 begin
05     preis := FResult.FieldValueByName('preis');
06     preisStr := Format('%3m', [aPreis]); // * Fehler
07 end;
Die Funktion "FieldValueByName" liefert einen Wert vom Typ PAnsiChar.
Wie bekomme ich den jetzt mittels Format so formatiert (3 Nachkommastellen + Währungssymbol)?

Die Fehlermeldung lautet übrigens "Format '%3m' ungültig oder nicht kompatibel mit Argument.'.

Olli 24. Sep 2005 12:27

Re: PAnsiChar für Format() umwandeln
 
Du kannst nicht einfach ein PAnsiChar in einen anderen Wert casten. Stattdessen solltest du mit einem SetString()-Aufruf einer Stringvariablen den Wert des PAnsiChar zuweisen und dann selber deine Formatierungsarbeit am String machen. Danach kannst du dann mit "%s" den String ausgeben lassen.

sBorchert 24. Sep 2005 12:37

Re: PAnsiChar für Format() umwandeln
 
Zitat:

Zitat von Olli
Du kannst nicht einfach ein PAnsiChar in einen anderen Wert casten.

Schade. Wär ja sonst auch zu einfach.

Zitat:

Zitat von Olli
Stattdessen solltest du mit einem SetString()-Aufruf einer Stringvariablen den Wert des PAnsiChar zuweisen und dann selber deine Formatierungsarbeit am String machen. Danach kannst du dann mit "%s" den String ausgeben lassen.

Ok, danke. Ich habs jetzt so gelöst.

schönes Wochenende,

Stefan


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