string vergleich

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
7 Beiträge • Seite 1 von 1
7 Beiträge Seite 1 von 1

string vergleich

Beitrag von dimes (Specialist / 146 / 0 / 0 ) »
Hallo leute,

Ich muss überprüfen ob ein einem String feld das datum im Format TT.MM.JJJJ geschrieben wurde oder
TT.MM.JJ. Bei dem Format TT.MM.JJ soll ich eine Fehlermeldung ausgeben. Aber irgendwie geht das nicht.
Kann mir da jemand weiterhelfen:

Code: Alles auswählen.

REPORT test.

DATA: a1(20) TYPE c.


a1 = '22.10.06'.


IF not a1 CP '++.++.++++'.
  write: 'falsches Textdatum    ', a1.
ENDIF.


"geht auch nicht...
IF not a1 CP '++#.++#.++++'.
  write: 'falsches Textdatum    ', a1.
ENDIF.

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


Re: string vergleich

Beitrag von JHM (Top Expert / 1197 / 1 / 197 ) »
dimes hat geschrieben:Kann mir da jemand weiterhelfen.

Code: Alles auswählen.

REPORT test.

DATA: a1(20) TYPE c.

a1 = '22.10.06'.

IF not a1 CP '++.++.++++'.
  write: 'falsches Textdatum    ', a1.
ENDIF.

*so gehts
IF not a1 CP '#++.++.++++'.
  write: 'falsches Textdatum    ', a1.
ENDIF.
Gruß Hendrik

Beitrag von GastX (Specialist / 277 / 4 / 18 ) »

Code: Alles auswählen.

*so gehts 
IF not a1 CP '#++.++.++++'. 
  write: 'falsches Textdatum    ', a1. 
ENDIF.
Stimmt leider nicht ganz, das Fluchtzeichen '#' sorgt nur dafür dass geprüft wird, ob die Zeichenkette mit einem '+' beginnt.

Versuche es doch mal

Beitrag von scott111 (ForumUser / 49 / 0 / 0 ) »
Es gibt eine Anweisung Using DATA-Mask.


Also

DATA: Datum type C using data-mask "__.__.____" (12.12.2006)

Vielleicht hilft da ja weiter

Tschau

Chris

Beitrag von dimes (Specialist / 146 / 0 / 0 ) »
Also so eine Anweisung finde ich in meiner Abap hilf zu der Anweisung data nicht... (4.6C)

Gibts vielleicht nen FB für so eine Bedingung???
Oder hat irgendeiner noch eine andere idea???

Beitrag von GastX (Specialist / 277 / 4 / 18 ) »
Hallo Dimes,
wenn es sich um Usereingaben z.B. beim Aufruf handelt, würde ich vorschlagen, das Eingabefeld gleich entsprechend zu definieren, also eine der folgenden Möglichkeiten wählen:

Code: Alles auswählen.

PARAMETERS: DAT1 LIKE SY-DATUM,
            DAT2 TYPE D.
Das ist dann in der internen Darstellung zwar so etwas wie 20010522, aber halt ein gültiges Datum. (Die Ausgabe per Write von DAT1 und DAT2 unterscheidet sich übrigens.)

Ein Baustein fällt mir momentan nicht ein.
Wenn Du als Ausgangsdaten nur die im Textformat hast, sind die Patternvergleiche in meinen Augen nur bedingt hilfreich, da auch 99.77.9123 dann ein gültiges Datum wäre. Wenn das reicht, würde ich das hier machen:

Code: Alles auswählen.

REPORT ZZ_TEST.
DATA: A1(20) TYPE C,
      TEST(10) TYPE C. "2 Punkte und Zahlen

A1 = '22.10.06'.
TEST = A1.
IF TEST+2(1) = '.' AND TEST+5(1) = '.' AND TEST CO '0123456789.'.
  WRITE:/ 'richtiges Testdatum', A1.
ELSE.
  WRITE:/ 'falsches Testdatum', A1.
ENDIF.
die zu kurzen Datumsangaben erzeugen dann Blanks in "test" und enthalten somit andere Zeichen als abgefragt.

Wenn Du wissen willst, ob ein Datum wirklich gültig ist, kann man sich etwas basteln:

Code: Alles auswählen.

REPORT ZZ_TEST.

DATA: A1(20) TYPE C,
      DATUM LIKE SY-DATUM.

A1 = '22.10.06'.
CONCATENATE  A1+6(4) A1+3(2) A1(2) INTO DATUM.
IF DATUM = 0.
  WRITE:/ 'falsches Datum', DATUM.
ELSE.
  WRITE:/ 'richtiges Datum', DATUM.
ENDIF.
Im If findet eine interne Konvertierung des Datumsfeldes in eine Zahl statt, dabei werden alle ungültigen Datumsangaben und das Datum '01.01.0001' in eine 0 umgesetzt. (Du müsstest den 01.01.0001 also abfangen, falls der bei Dir eine Rolle spielt).
Alle anderen Angaben erhalten eine Zahl > 0.
Vorteil: auch der 31.02.2006 wird als falsch erkannt.

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

ich würde ganz einfach mit strlen die Zeichen zählen:


bei 2stelliger Jahreszahl bekommst du den Wert 8 und bei 4st. den Wert 10.



lg Andreas

Seite 1 von 1

Vergleichbare Themen

2
Antw.
4693
Views
Vergleich STRING <> CHAR Feld (Unicode-Problem?)
von ST22 » 04.04.2007 09:17 • Verfasst in ABAP® Core
1
Antw.
2747
Views
Vergleich JSP / BSP
von Tserva » 07.11.2006 21:50 • Verfasst in Java & SAP®
2
Antw.
1995
Views
Vergleich von Datenelementen
von Senshi » 04.09.2007 12:38 • Verfasst in ABAP® für Anfänger
5
Antw.
2285
Views
Vergleich ähnlich Like
von thomasxy » 28.11.2007 13:40 • Verfasst in ABAP® für Anfänger
4
Antw.
3192
Views
Vergleich zweier IDocs
von ABAP-Azubi » 07.04.2014 14:57 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Regex in where
vor 5 Stunden von edwin 7 / 163
Daten an Tabelle binden
vor 18 Stunden von Bright4.5 3 / 1487

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

Regex in where
vor 5 Stunden von edwin 7 / 163
Daten an Tabelle binden
vor 18 Stunden von Bright4.5 3 / 1487

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 5 Wochen von ralf.wenzel 1 / 3261
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9822