knuefi
Goto Top

Script Pascal Buchstaben vor Zahl in bestimmter Länge

Hallo zusammen,

ich habe eine Frage zu einen Pascal Script. Ich versuche automatisch bei Zahlen einen oder zwei Buchstaben (A) Vorweg zu stellen.
Beispiel, bei der Eingabe Zahl 1 bis 9 soll automatisch AA1 bis AA9 erzeugt werden. Bei der Eingabe Zahl 10 bis 99 soll nur ein A10 bis A99 erzeugt werden.
Mein versuch:
Var
p :Integer;
Begin
Tag := AnsiReplaceStr(Tag, '1', 'AA1');  
Tag := AnsiReplaceStr(Tag, '2', 'AA2');  
Tag := AnsiReplaceStr(Tag, '3', 'AA3');  
Tag := AnsiReplaceStr(Tag, '4', 'AA4');  
Tag := AnsiReplaceStr(Tag, '5', 'AA5');  
Tag := AnsiReplaceStr(Tag, '6', 'AA6');  
Tag := AnsiReplaceStr(Tag, '7', 'AA7');  
Tag := AnsiReplaceStr(Tag, '8', 'AA8');  
Tag := AnsiReplaceStr(Tag, '9', 'AA9');  
Tag := AnsiReplaceStr(Tag, '10', 'A10');  
Tag := AnsiReplaceStr(Tag, '11', 'A11');  
Tag := AnsiReplaceStr(Tag, '12', 'A12');  
Tag := AnsiReplaceStr(Tag, '13', 'A13');  
Tag := AnsiReplaceStr(Tag, '14', 'A14');  
Tag := AnsiReplaceStr(Tag, '15', 'A15');  
Tag := AnsiReplaceStr(Tag, '16', 'A16');  
Tag := AnsiReplaceStr(Tag, '17', 'A17');  
Tag := AnsiReplaceStr(Tag, '18', 'A18');  
Tag := AnsiReplaceStr(Tag, '19', 'A19');  
Tag := AnsiReplaceStr(Tag, '20', 'A20');  
Tag := AnsiReplaceStr(Tag, '21', 'A21');  
Tag := AnsiReplaceStr(Tag, '22', 'A22');  
Tag := AnsiReplaceStr(Tag, '23', 'A23');  
Tag := AnsiReplaceStr(Tag, '24', 'A24');  
Tag := AnsiReplaceStr(Tag, '25', 'A25');  
Tag := AnsiReplaceStr(Tag, '26', 'A26');  
Tag := AnsiReplaceStr(Tag, '27', 'A27');  
Tag := AnsiReplaceStr(Tag, '28', 'A28');  
Tag := AnsiReplaceStr(Tag, '29', 'A29');  
Tag := AnsiReplaceStr(Tag, '30', 'A30');  
Tag := AnsiReplaceStr(Tag, '31', 'A31');  
Tag := AnsiReplaceStr(Tag, '32', 'A32');  
Tag := AnsiReplaceStr(Tag, '33', 'A33');  
Tag := AnsiReplaceStr(Tag, '34', 'A34');  
Tag := AnsiReplaceStr(Tag, '35', 'A35');  
Tag := AnsiReplaceStr(Tag, '36', 'A36');  
Tag := AnsiReplaceStr(Tag, '37', 'A37');  
Tag := AnsiReplaceStr(Tag, '38', 'A38');  
Tag := AnsiReplaceStr(Tag, '39', 'A39');  
Tag := AnsiReplaceStr(Tag, '40', 'A40');  
Tag := AnsiReplaceStr(Tag, '41', 'A41');  
Tag := AnsiReplaceStr(Tag, '42', 'A42');  
Tag := AnsiReplaceStr(Tag, '43', 'A43');  
Tag := AnsiReplaceStr(Tag, '44', 'A44');  
Tag := AnsiReplaceStr(Tag, '45', 'A45');  
Tag := AnsiReplaceStr(Tag, '46', 'A46');  
Tag := AnsiReplaceStr(Tag, '47', 'A47');  
Tag := AnsiReplaceStr(Tag, '48', 'A48');  
Tag := AnsiReplaceStr(Tag, '49', 'A49');  
Tag := AnsiReplaceStr(Tag, '50', 'A50');  
Tag := AnsiReplaceStr(Tag, '51', 'A51');  
Tag := AnsiReplaceStr(Tag, '52', 'A52');  
Tag := AnsiReplaceStr(Tag, '53', 'A53');  
Tag := AnsiReplaceStr(Tag, '54', 'A54');  
Tag := AnsiReplaceStr(Tag, '55', 'A55');  
Tag := AnsiReplaceStr(Tag, '56', 'A56');  
Tag := AnsiReplaceStr(Tag, '57', 'A57');  
Tag := AnsiReplaceStr(Tag, '58', 'A58');  
Tag := AnsiReplaceStr(Tag, '59', 'A59');  
Tag := AnsiReplaceStr(Tag, '60', 'A60');  
Tag := AnsiReplaceStr(Tag, '61', 'A61');  
Tag := AnsiReplaceStr(Tag, '62', 'A62');  
Tag := AnsiReplaceStr(Tag, '63', 'A63');  
Tag := AnsiReplaceStr(Tag, '64', 'A64');  
Tag := AnsiReplaceStr(Tag, '65', 'A65');  
Tag := AnsiReplaceStr(Tag, '66', 'A66');  
Tag := AnsiReplaceStr(Tag, '67', 'A67');  
Tag := AnsiReplaceStr(Tag, '68', 'A68');  
Tag := AnsiReplaceStr(Tag, '69', 'A69');  
Tag := AnsiReplaceStr(Tag, '70', 'A70');  
Tag := AnsiReplaceStr(Tag, '71', 'A71');  
Tag := AnsiReplaceStr(Tag, '72', 'A72');  
Tag := AnsiReplaceStr(Tag, '73', 'A73');  
Tag := AnsiReplaceStr(Tag, '74', 'A74');  
Tag := AnsiReplaceStr(Tag, '75', 'A75');  
Tag := AnsiReplaceStr(Tag, '76', 'A76');  
Tag := AnsiReplaceStr(Tag, '77', 'A77');  
Tag := AnsiReplaceStr(Tag, '78', 'A78');  
Tag := AnsiReplaceStr(Tag, '79', 'A79');  
Tag := AnsiReplaceStr(Tag, '80', 'A80');  
Tag := AnsiReplaceStr(Tag, '81', 'A81');  
Tag := AnsiReplaceStr(Tag, '82', 'A82');  
Tag := AnsiReplaceStr(Tag, '83', 'A83');  
Tag := AnsiReplaceStr(Tag, '84', 'A84');  
Tag := AnsiReplaceStr(Tag, '85', 'A85');  
Tag := AnsiReplaceStr(Tag, '86', 'A86');  
Tag := AnsiReplaceStr(Tag, '87', 'A87');  
Tag := AnsiReplaceStr(Tag, '88', 'A88');  
Tag := AnsiReplaceStr(Tag, '89', 'A89');  
Tag := AnsiReplaceStr(Tag, '90', 'A90');  
Tag := AnsiReplaceStr(Tag, '91', 'A91');  
Tag := AnsiReplaceStr(Tag, '92', 'A92');  
Tag := AnsiReplaceStr(Tag, '93', 'A93');  
Tag := AnsiReplaceStr(Tag, '94', 'A94');  
Tag := AnsiReplaceStr(Tag, '95', 'A95');  
Tag := AnsiReplaceStr(Tag, '96', 'A96');  
Tag := AnsiReplaceStr(Tag, '97', 'A97');  
Tag := AnsiReplaceStr(Tag, '98', 'A98');  
Tag := AnsiReplaceStr(Tag, '99', 'A99');  
End.

Von 1 bis 10 wird es gut umgesetzt, leider alles über 10 nicht. Bei der Eingabe der Zahl 57 zum Beispiel ist das Ergebnis AA5AA7.
Gibt es eine andere Möglichkeit einstellige Zahlen mit zwei AA- und zweistellige Zahlen mit nur einen A links aufzufühlen?.
Gruß

Content-Key: 369696

Url: https://administrator.de/contentid/369696

Ausgedruckt am: 28.03.2024 um 19:03 Uhr

Mitglied: 135799
135799 29.03.2018 aktualisiert um 21:00:43 Uhr
Goto Top
AddChar ist dein Freund und Helfer.
Description

AddChar adds characters (C) to the left of S till the length N is reached, and returns the resulting string. If the length of S is already equal to or larger than N, then no characters are added. The resulting string can be thought of as a right-aligned version of S, with length N.
Mitglied: Knuefi
Knuefi 29.03.2018 um 18:40:24 Uhr
Goto Top
wie würde den der Code aussehen?

wenn ich es richtig verstanden habe dann ist
c: das Zeichen
n: die Länge
oder ?
Mitglied: Knuefi
Knuefi 29.03.2018 um 18:52:19 Uhr
Goto Top
Leider bekommen ich diese Fehlermeldung:
Unknown identifier 'AddChar'
Compiling failed!
Begin
Tag := AddChar('A',Tag,3);  
End.
Mitglied: 135799
135799 29.03.2018 aktualisiert um 21:30:53 Uhr
Goto Top
Zitat von @Knuefi:
wenn ich es richtig verstanden habe dann ist
c: das Zeichen
n: die Länge
oder ?
Kannst du nicht lesen?? Meine Güte, verständlicher wie in der Doku geht's nun wirklich nicht!

Leider bekommen ich diese Fehlermeldung:
Unknown identifier 'AddChar'
Compiling failed!
Kein Wunder, wenn du das uses strutils nicht setzt.
Ich dachte wenn man schon mit Pascal hier ankommt das man zumindest die Basics drauf hat. Ich hab Pascal heute gerade schnell mal angeschaut und bin in 5 Minuten fertig gewesen:
uses strutils;
var str : string;
begin
   str := '5';  
   writeln(AddChar('A',str,3));  
   str := '16';  
   writeln(AddChar('A',str,3));  
end.
Das Beispiel gibt dir für zwei Beispiel Zahlen das hier aus
AA5
A16
So wie du dir das vorstellst, eben immer auf 3 Stellen am Anfang um A Zeichen aufgefüllt.

Und, war das jetzt wirklich so schwer? Nein, gelleface-smile

Die Abfrage des Wertes mit readln(str) bekommst du jetzt hoffentlich selbst hin...
Mitglied: erikro
erikro 30.03.2018 um 12:35:00 Uhr
Goto Top
Ich erinnere mich nur dunkel an Pascal. Aber ich bin mir sicher, dass es da auch for-Schleifen gibt. ;) Nur mal so ...
Mitglied: 135799
Lösung 135799 30.03.2018 aktualisiert um 13:57:42 Uhr
Goto Top
Sicher gibet dat
uses strutils,sysutils;
var low : integer;
var high : integer;
var i : integer;
begin
    writeln('Enter low value:');  
    readln(low);
    writeln('Enter high value:');  
    readln(high);
    for i := low to high do writeln(AddChar('A',IntToStr(i),3));  
end.
Online selbst testen (Echt praktisch wenn man mal unterwegs ist)

(Schnuffi der gestern das erste mal in seinem Leben Pascal geschrieben hat).

Wenn's das dann war, noch ein gelöst dran gepappt und fertig...
Mitglied: Knuefi
Knuefi 30.03.2018 um 23:10:47 Uhr
Goto Top
Danke, läuft !!