You are not logged in.

wcf.regNote.message

piep001

Intermediate

  • "piep001" started this thread

Posts: 338

Location: NRW

Occupation: Fachinformatiker (AE)

  • Send private message

1

Friday, December 17th 2004, 2:27pm

Free-Pascal :: Strings

Und wieder stehe ich wie ein Ochs vorm Berg.

Habe folgenden String z.B.: 2358.4569.3256-5656
Die Gesamtzeichenanzahl ist nicht fest und es ist auch nicht gesagt, ob ein Trennzeichen und wenn welches genutzt wird. Ich möchte hinterher auf jeden Fall eine durchgehende Zahl ohne Trennzeichen.

Sprich aus ... 2358.4569.3256-5656 ... soll ... 2358456932565656 ... werden.
Oder aus ... 033-5678 ... soll ... 0335678 ... werden.
Oder es soll gleich bleiben, sprich aus ... 265987 soll/bleibt ... 265987 ... werden.

Relativ kompliziert finde ich, weil man nie genau weiß, was da ankommt. Es gibt auch Zahlen, die hinten einfach 10 Leerzeichen haben, die auch wegsollen. Also im Prinzip einen String nehmen und alle Leer- und Sonderzeichen entfernen.

Kann mir da einer mal helfen oder nen Anfang geben?
Spaß im Netz auf www.piep001.de

Ephraim

Professional

Posts: 826

Location: coder-board.info

Occupation: Info-Student

  • Send private message

2

Saturday, December 18th 2004, 5:47pm

Naja eine Möglichkeit wäre es, wenn du deine
Strings, Zeichen für Zeichen durchgehst und dann
schaust ob es eine Zahl ist,
wenn ja kopierst du dieses Zeichen in eine andere Stringvariable,
ist es keine Zahl, vergiß das Zeichen ;)

String Unit

Ciao Ephraim

piep001

Intermediate

  • "piep001" started this thread

Posts: 338

Location: NRW

Occupation: Fachinformatiker (AE)

  • Send private message

3

Monday, December 20th 2004, 10:22am

Jo, wäre ne Möglichkeit und hatte ich auch schon mal dran gedacht, aber die Unit kannte ich wieder nicht. Mal schaun, ob die mein Free-Pascal auch nimmt. Melde mich dann nachher wieder. Mein ganzer Schreibtisch ist voll mit Arbeit!!!!
Spaß im Netz auf www.piep001.de

piep001

Intermediate

  • "piep001" started this thread

Posts: 338

Location: NRW

Occupation: Fachinformatiker (AE)

  • Send private message

4

Monday, December 20th 2004, 4:11pm

Hui, hab's hinbekommen, allerdings etwas einfacher bzw. mit ner anderen Funktion die keine besondere Unit braucht.

Denke ich poste mal meine Lösung, vielleicht hilft sie jemand anderem ja auch.
In der Variablen "filename" steht der Zahlenwirwar mit Sonderzeichen, hier "2358.4569.3256-5656". Hinterher steht in "result2" dann nur noch "2358456932565656" (nur Zahlen sollen übrig bleiben), welches ich dann wieder der Variablen "filename" zuweise. Das könnte man jetzt noch als Funktion fertig machen und fertig ist.

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
        filename := '2358.4569.3256-5656';

        WriteLn ('Anfangswert: ' + filename);

        o := 1;
        f_result1 := '';
        f_result2 := '';

        WHILE o <= length(filename) DO
        BEGIN

            f_result1 := filename[o];  // immer 1 Zeichen auslesen

            IF (f_result1 >= '0') AND (f_result1 <= '9') THEN BEGIN

                insert (f_result1,f_result2,255);  // das eingelesene Zeichen hinten an "result1" anhängen
                // Syntax: insert (das Anzuhängende, Ergebnisvariable als STRING, Position - bei 255 immer hinten dran)

                Writeln('Resultat1: ' + f_result1);  // Ausgabe aktuelles Zeichen
                Writeln('Resultat2: ' + f_result2);  // Ausgabe des neuen Strings (Ergebnis)

            END;

            o := o + 1;
        END;

        filename := f_result2;
        Writeln('Ergebnis: ' + filename);
Spaß im Netz auf www.piep001.de

wcf.user.socialbookmarks.titel