integer in '*' umwandeln

Getting started ... Alles für einen gelungenen Start.
6 Beiträge • Seite 1 von 1
6 Beiträge Seite 1 von 1

integer in '*' umwandeln

Beitrag von boogey (ForumUser / 2 / 0 / 0 ) »
Hi,

habe dieses semester abap dazubekommen und habe hier eine Aufgabenstellung bei der ich nichtmehr weiterkomme.
ich soll in einem beliebig wählbaren string alle zahlen durch '*' ersetzen.
z.b.:
Parameterstring: H4ll0 W3lt
Ausgabestring: H*ll* W*lt

das mit dem zahlen ersetzen schaff ich bis jetzt aber nur bei einem reinen zahlenstring. sobald ein Buchstabe da steht gibts nen Laufzeitfehler und zwar das der Buchstabe nicht als Zahl interpretiert werden kann. Wieso das so ist, ist mir klar, aber mir fällt kein umweg ein.

hier noch mein code:

Code: Alles auswählen.

parameters    zeichenk(50) type c.

data:          string(50) type c,
               string2 like string,
               laenge type i value 0.


string = zeichenk.
laenge = strlen( string ).

while string np space.
    if string(1) = 0 OR string(1) = 1 OR string(1) = 2
    OR string(1) = 3 OR string(1) = 4 OR string(1) = 5
    OR string(1) = 6 OR string(1) = 7 OR string(1) = 8 OR string(1) = 9.
       string(1) = '*'.
       write string(1).
       shift string.


   else.
        write string(1).
        shift string.
   endif.
endwhile.


Write: / 'Länge',laenge,string.
danke fürs durchlesen :)

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: integer in '*' umwandeln

Beitrag von Asaph (Expert / 580 / 6 / 1 ) »
hi ,

versuch mal dies:

Code: Alles auswählen.

REPORT  zrep_stern.
                                                                        
PARAMETERS p_str(50) DEFAULT 'H4ll0 W3lt'.
                                                                        
DATA z_str TYPE string.
DATA z VALUE 0.
                                                                        
                                                                        
START-OF-SELECTION.
  z_str = p_str.
                                                                        
  DO 10 TIMES.
    REPLACE ALL OCCURRENCES OF  z IN z_str WITH '*'.
    ADD 1 TO z.
  ENDDO.
                                                                        
  WRITE: / p_str, / z_str.

gruezi
Andreas
a s
s oon
a s
p ossible
h elp
http://www.clv.de/

Re: integer in '*' umwandeln

Beitrag von Ratazong (Specialist / 144 / 1 / 14 ) »
Oder:

Code: Alles auswählen.

data: gv_string type string value 'H4ll0 W3lt'.

write / gv_string.

TRANSLATE gv_string USING '1*2*3*4*5*6*7*8*9*0*'.

write / gv_string.
Ergebnis:

H4ll0 W3lt
H*ll* W*lt

Re: integer in '*' umwandeln

Beitrag von black_adept (Top Expert / 4099 / 128 / 941 ) »
Hallo boogey,

das Problem mit dem Laufzeitfehler rührt daher, dass du in deinen Vergleichen gegen die Zahlen 0-9 prüfst. Daher versucht das System intern den Buchstaben in eine Zahl umzuwandeln und es kommt zu dem Dump.

Wenn du statt "IF STRING(1) = 6" nun "IF STRING(1) = '6'" nehmen würdest, würde diese implizite Typumwandlung wegfallen, da du nun gegen das Zeichen "6" und nicht mehr gegen die Zahl "6" prüfst und dein Programm würde wohl funktionieren .

Schönere Möglichkeiten das zu machen als händisch jede Stringposition gegen die 10 Ziffern zu prüfen haben ja meine Vorposter auch schon demonstriert - aber da ja bekanntlich viele Wege nach Rom führen hier noch eine weitere Möglichkeit.

Code: Alles auswählen.

REPLACE ALL OCCURRENCES OF REGEX '/d' IN gv_string with '*'.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: integer in '*' umwandeln

Beitrag von boogey (ForumUser / 2 / 0 / 0 ) »
meine antwort kommt zwar spät, aber danke euch für die hilfe, alles bestens gelaufen :)

Re: integer in '*' umwandeln

Beitrag von .marc. (ForumUser / 20 / 1 / 0 ) »
mit welcher dieser Antworten ist es denn "bestens gelaufen"? Ich denke für Anfänger wie mich ganz nützlich.. gerade in so Foren ist es schrecklich wenn man denkt eine Lösung gefunden zu haben und dazu erstmal 1000 verschiedene Ansätze durchtesten muss :) Wäre also super wenn du kurz sagst, welche der Ansätze dich zur Lösung gebracht hat.

Danke und Gruß
Marc

Seite 1 von 1

Vergleichbare Themen

3
Antw.
1918
Views
Check auf Integer
von Kojak » 18.09.2006 11:23 • Verfasst in ABAP® Core
3
Antw.
2779
Views
Teilfeldzugriff auf Integer
von tho » 18.02.2005 15:24 • Verfasst in ABAP® Core
5
Antw.
5719
Views
Anzahl Stellen bei Integer
von KleinerEisbaer » 11.04.2008 12:35 • Verfasst in ABAP® für Anfänger
2
Antw.
2831
Views
Char Feld auf Integer
von Kusi » 20.02.2017 22:58 • Verfasst in ABAP® für Anfänger
10
Antw.
3668
Views
integer in SAP Skript Formular
von cali » 13.12.2006 08:38 • Verfasst in ABAP® Core

Aktuelle Forenbeiträge

Daten an Tabelle binden
vor 2 Stunden von Bright4.5 3 / 1473
Regex in where
vor 3 Stunden von tar 6 / 130
Programm anlegen mit Vorlage
vor 18 Stunden von DeathAndPain 2 / 122
IT0024 Qualifikationen CP-ID
vor 19 Stunden von DeathAndPain 2 / 353

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Daten an Tabelle binden
vor 2 Stunden von Bright4.5 3 / 1473
Regex in where
vor 3 Stunden von tar 6 / 130
Programm anlegen mit Vorlage
vor 18 Stunden von DeathAndPain 2 / 122
IT0024 Qualifikationen CP-ID
vor 19 Stunden von DeathAndPain 2 / 353

Unbeantwortete Forenbeiträge

BUSOBJEKT zu CMIS PHIO ermitteln
vor 21 Stunden von snooga87 1 / 86
aRFC im OO-Kontext
vor 5 Wochen von ralf.wenzel 1 / 3261
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9821