Ach du lieber Himmel!!! Vergiss es. Mach ne realistisch hohe Aufwandsschätzung, dann wird herauskommen, dass das niemand bezahlen will. Das einzige, was mir einfiele, wäre ein Abgleich mit einem offiziellen Straßenverzeichnis. Aber nach Regeln wirst du sowas bei Straßennahmen nie hinbekommen, weil solche Namen oft auch Ausnahmen haben.horo hat geschrieben:ich bekommen Strassennamen im Grossformat angeliefert und muss diese in Kleinformat wandeln. ABER: Nicht einfach nur alles kleinschreiben, das wäre ja einfach, sondern es gibt eine Menge Regelen.
manmanman.... bei ausländischen Adressen ist sowas nicht zu machen, wenn es nicht auf Regeln basiert, die dir bekannt sind. Kannst du kein anderes Straßenverzeichnis zu Rate ziehen? Sowas muss es doch korrekt ausgeschrieben geben.horo hat geschrieben:Wenn es irgendwie möglich ist, wäre ich auch dankbar für die Sache mit den Strassen und Hausnummern, weil genau die Aktion steht auch noch auf meiner Liste, steht bei einer Altdaten-Uebernahme an...und zwar genau so wie bei dir, Hausnummer steht irgendwo in der Strasse.
Code: Alles auswählen.
PARAMETERS: s_rue(35) TYPE c.
TYPES: ty_split(35) TYPE c.
DATA: wa_split TYPE ty_split,
it_split TYPE TABLE OF ty_split,
gl_result TYPE ty_split.
CONSTANTS: c_le(2) TYPE c VALUE 'le',
c_la(2) TYPE c VALUE 'la',
c_l_(2) TYPE c VALUE 'l''',
c_de(2) TYPE c VALUE 'de',
c_des(3) TYPE c VALUE 'des',
c_les(3) TYPE c VALUE 'les',
c_rue(3) TYPE c VALUE 'rue'.
START-OF-SELECTION.
WRITE: / 'Vorher:', s_rue.
CONDENSE s_rue.
TRANSLATE s_rue TO LOWER CASE.
SPLIT s_rue AT space INTO TABLE it_split.
LOOP AT it_split INTO wa_split.
IF NOT ( wa_split = c_le OR
wa_split = c_la OR
wa_split(2) = c_l_ OR
wa_split = c_de OR
wa_split = c_des OR
wa_split = c_les OR
wa_split = c_rue ).
TRANSLATE wa_split(1) TO UPPER CASE.
ENDIF.
IF wa_split(2) = c_l_.
TRANSLATE wa_split+2(1) TO UPPER CASE.
ENDIF.
CONCATENATE gl_result wa_split INTO gl_result SEPARATED BY space.
ENDLOOP.
WRITE: / 'Nacher: ', gl_result.
bist du dir da ganz sicher?horo hat geschrieben:der wo mir die Daten schickt ist die Post, und die hat halt ein Standard (=Grossformat). Daran gibt's nicht zu rütteln, ich muss mir einen Weg suchen.
Code: Alles auswählen.
DATA: ltext(200) TYPE c VALUE 'ABCDEFGHI ',
lchar TYPE c,
li TYPE i.
li = 0.
WRITE / ltext.
DO 200 TIMES.
lchar = ltext+li(1).
CASE lchar.
WHEN 'D'.
ltext+li(1) = '1'.
WHEN 'G'.
ltext+li(1) = ' '.
WHEN OTHERS.
ENDCASE.
ADD 1 TO li.
ENDDO.
WRITE / ltext.