Pascal Frage (Integers in Strings umwandeln)
Lactobacillus 02.12.2001 - 10:38 1588 11
Lactobacillus
Addicted
|
Hallo, ich bräuchte für eine procedure einen String den ich übergebe. Der String soll teilweise aus einem fixen Text und zum anderen Teil aus einem Integer bestehen. Das Problem ('irgendein Text' + Integer) funktioniert nicht, genausowenig wie ('irgendein Text', Integer) (weil er davon ausgeht, dass Integer ein eigener Paramenter ist). In Delphi gibt es InttoStr, dass es aber in Turbo Pascal nicht gibt Das einzige was ich gefunden hab wäre Str, das ist aber mühsam... Also: Wie hängt ihr eure Integers an Strings an? Danke! Lactobacillus
|
noledge
CWNE #540
|
so gehts auf jeden fall, aber was is daran mühsam? var
i:integer; s:string;
begin i:=500; s:=str(i)+' posts braucht man um den custom title zu ändern'; deineprocedure(s); end. str is glaub ich die gscheiteste möglichkeit. noli
|
Lactobacillus
Addicted
|
Wenn es so gehen würde wäre es eh toll, aber wenn ich dein Beispiel probiere spuckt er mir Error in expression. aus und er meint, dass ich das ganze mit Str(Integer, String) machen muß und das ist mühsam, wenn man jedes mal var aInteger : Integer; aString: String;
(...)
aInteger := 500;
Str(aInteger, aString); Prozedur('Anzahl der Titel um den Custom Title zu ändern = ' + aString); verwenden muß. Am schönsten wäre natürlich soetwas wie Prozedur('Anzahl der Titel um den Custom Title zu ändern = ' + Str(aInteger)); aber das spielt es leider nicht noledge: Einmal "Danke!" für die Antwort... Lactobacillus
|
noledge
CWNE #540
|
hm? wo ist das problem? wenns keine funktion dafür gibt, schreib ich eine mit dem str-aufruf drinnen function str2(i:integer):string; begin str(i,str2); end; dann kannst str2 so verwenden, wie ich es oben geschrieben habe. noli
|
Lactobacillus
Addicted
|
thx, Problem gelöst
|
noledge
CWNE #540
|
np noli
|
Lactobacillus
Addicted
|
Ich habe noch eine Frage: Gibt es einen Grund, warum var aInteger, ReturnCode : Integer;
begin; Val('+', aInteger, ReturnCode); Writeln(ReturnCode); end; als ReturnCode 2 und nicht 1, wie es doch eigentlich sein sollte (es sollte 0 zurückliefern, wenn die Umwandlung problemlos abgelaufen ist, ansonsten die Position im String, wo der Fehler aufgetreten ist), zurückliefert?! Danke! Lacto"Turbo Pascal 6.0"bacillus
|
Lactobacillus
Addicted
|
Ah...ich hab's durchschaut: er behandelt das '+' als Vorzeichen
|
xdfk
pädagogisch wertvoll
|
turbo pascal roolez die erste programmiersprache die ich gelernt habe was soll das programm im endeffekt denn eigentlich können bzw wieso machst du TP und nicht delphi?
|
Lactobacillus
Addicted
|
Das ganze ist irgendwie eine Designstudie (desshalb in TP) eines Parsers, wenn es einmal ausgereift ist, dann wird das ganze in ISO C from the scratch erstellt, aber ich bin weit davon entfernt (momentan kann das Ding aber z.B. schon, wenn ich ihm einen String, wie z.B. "1000-24+14" hinknalle es ausrechnen)
Bearbeitet von Lactobacillus am 02.12.2001, 18:26
|
xdfk
pädagogisch wertvoll
|
darf ich dir SML empfehlen: das kann das ohne probleme lösen. ich hab es bisher nur so programmiert dass er sub(add(sub(3,4),4),7); sub= '-' add= '+' das konnte er ohne fehler die klammern auflösen bzw hab ich auch noch "not" eingebaut dass man anstatt add und sub "+" bzw "-" schreiben kann sollte eigentlich kein problem sein das zu programmieren das IST der tu-graz arbeitet an so einem programm in java bzw sml schau mal auf http://www.ist.tu-graz.ac.at ->research->isabelle (hat unser tutor gemeint dass man es dort findet) das projekt hat als ziel dass man komplizierte rechnungen mit allen zwischenschritten darstellen kann also perfekt für schummler in der unterstufe
|
Lactobacillus
Addicted
|
Thx, ich werde es mir anschauen, aber ich glaub ich werde bei meinem TP bleiben, da sondst irgendwie der do-it-yourself-Effekt wegfällt (wenn auf einmal alles funktioniert )... Lactobacillus
|