Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Problem mit Format() und Array als Args
Dibelius - Do 01.05.08 15:48
Titel: Problem mit Format() und Array als Args
Ich hab mir eine Funktion zusammengebastelt, die ich etwas flexibel gestalten wollte, was die Anzahl der Argumente angeht usw. Deshalb hab ich mich für dynamische Arrays entschieden. Die Funktion soll einerseits die im array 'Value' übergebenen Werte (Typ real) mit optionaler Anzahl an Nachkommastellen (Float) ausgeben. Andererseits sollen die Werte als Koordinaten ausgegeben werden, wenn im array mehr als nur ein Platz belegt ist.
So, die erste Sache funktioniert auch.
Die Zweite mit den Koordinaten größtenteils auch, aber eben nicht ganz.
Wenn ich bei Format() im Args-array absolute Werte eingebe zb. ['do', 'it'] funktioniert es. Logischerweise bringt mir das recht wenig, da dort ja die Werte ausgegeben werden sollen, die sich dann schon als Strings im array StringArray befinden.
Mein einziges Problem ist jetzt nur, wie ich begreiflich mache, dass der Reihe nach die Werte aus dem StringArray in die Formate '%s' geschrieben werden. Ich bekomm da immer den Fehler "Format '%s' ungültig oder nicht kompatibel mit Element"
Vor dem letzten 'result' hat Placeholder übrigens den Wert '%s; %s; %s' im Falle von 3 Werten array. Also alles so, wie es sein sollte...
Marc. - Do 01.05.08 16:07
Hi!
ValueString ist ein Array of String, %s fordert allerdings einen String. Das ist nicht das gleiche!
Dein Programm wird wohl kaum ein String-Array auf die einzelnen Platzhalter verteilen. Das musst Du schon selbst realisieren. ;)
Dibelius - Do 01.05.08 16:16
ok, da ist was dran ^^
ich denke, ich brauch noch einen Tipp, wie ich das anstelle.
delfiphan - Fr 02.05.08 09:46
Du kannst dem Format als zweiten Parameter ein array of TVarRec übergeben, welches du zuerst mit den entsprechenden Werten füllst.
Jedoch macht es nicht viel Sinn zuerst einen String mit Platzhaltern zusammenzusetzen und danach die Platzhalter mit Format zu füllen. Du kannst den String mit den Zahlen ja direkt zusammensetzen, ohne den Umweg über die Platzhalter. Die einzelnen Zahlen kannst du dann immer noch einzeln mit Format formatieren.
Dibelius - Fr 02.05.08 11:20
langsam wird's knifflig...
in der Hilfe und im Netz finde ich kaum Beispiele zur Verwendung von TVarRec.
ich weiß atm da nicht weiter. :(
delfiphan - Fr 02.05.08 11:56
Musst du ja nicht, lies den zweiten Satz. Beantwortet zwar nicht deine Frage (falls du denn eine gestellt hättest), löst aber dein Problem. ;)
(Setz die Zahlen einfach in einer Forschleife zusammen, satt den Umweg über die Platzhalter zu gehen.)
Dibelius - So 04.05.08 13:35
jo, also ich hab's nun auch so gemacht.
Danke für die Hilfe.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 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!