Umlaute ersetzen

  • Moin Moin


    also ich hab das probem das ich einen Kontenexport für Datev mache das funktioniert auch soweit, nur hab ich jetzt das problem das alle umlaute (ä,ö,ü) ersetzt werden müssen (ae,oe,ue)


    die Daten werden in einem ordner geschoben der sie gleich richtig formatieren soll und von dort werden dann die Daten exportiert, die formatierung geschieht wie folgt:
    _______________________
    LeerText := "\"" + "\"";
    AZ := "\"";
    KuBz := @If(DTV_KURZBEZ ="";""; AZ + @If(@Contains(DTV_KURZBEZ;"ä");@ReplaceSubstring(DTV_KURZBEZ;"ä";"ae");@If(@Contains(DTV_KURZBEZ;"Ä");@ReplaceSubstring(DTV_KURZBEZ;"Ä";"Ae");DTV_KURZBEZ))+ AZ);
    KuBz1 := @If(KuBz ="";""; AZ + @If(@Contains(KuBz;"ö");@ReplaceSubstring(KuBz;"ö";"oe");@If(@Contains(KuBz;"Ö");@ReplaceSubstring(KuBz;"Ö";"Oe");KuBz))+ AZ);
    KuBz2:= @If(KuBz1 ="";""; AZ + @If(@Contains(KuBz1;"ü");@ReplaceSubstring(KuBz1;"ü";"ue");@If(@Contains(KuBz1;"Ü");@ReplaceSubstring(KuBz1;"Ü";"Ue");KuBz1))+ AZ);



    Name2 := @If(DTV_NAME2 ="";"";AZ + @If(@Contains(DTV_NAME2;"ä");@ReplaceSubstring(DTV_NAME2;"ä";"ae");@If(@Contains(DTV_NAME2;"Ä");@ReplaceSubstring(DTV_NAME2;"Ä";"Ae");DTV_NAME2 + AZ)));
    Name21:=@If(Name2 ="";"";AZ + @If(@Contains(Name2;"ö");@ReplaceSubstring(Name2;"ö";"oe");@If(@Contains(Name2;"Ö");@ReplaceSubstring(Name2;"Ö";"Oe");DTV_NAME2 + AZ)));
    Name22:=@If(Name21 ="";"";AZ + @If(@Contains(Name21;"ü");@ReplaceSubstring(Name21;"ü";"ue");@If(@Contains(Name21;"Ü");@ReplaceSubstring(Name21;"Ü";"Ue");DTV_NAME2 + AZ)));


    Ust := @If(DTV_USTID ="";"";AZ + DTV_USTID + AZ );


    PoFa := @If(DTV_POSTF ="";"";AZ +DTV_POSTF + AZ );


    Strasse:= @If(DTV_STR ="";"";AZ + @If(@Contains(DTV_STR;"ä");@ReplaceSubstring(DTV_STR;"ä";"ae");@If(@Contains(DTV_STR;"Ä");@ReplaceSubstring(DTV_STR;"Ä";"Ae");DTV_STR + AZ)));
    Srasse1:=@If(Strasse ="";"";AZ + @If(@Contains(Strasse;"ö");@ReplaceSubstring(Strasse;"ö";"oe");@If(@Contains(Strasse;"Ö");@ReplaceSubstring(Strasse;"Ö";"Oe");DTV_STR + AZ)));
    Strasse2:=@If(Strasse1 ="";"";AZ + @If(@Contains(Strasse1;"ü");@ReplaceSubstring(Strasse1;"ü";"ue");@If(@Contains(Strasse1;"Ü");@ReplaceSubstring(Strasse1;"Ü";"Ue");DTV_STR + AZ)));


    Ort := @If(DTV_ORT ="";"";AZ + @If(@Contains(DTV_ORT;"ä");@ReplaceSubstring(DTV_ORT;"ä";"ae");@If(@Contains(DTV_ORT;"Ä");@ReplaceSubstring(DTV_ORT;"Ä";"Ae");DTV_ORT + AZ)));
    Ort1:=@If(Ort ="";"";AZ + @If(@Contains(Ort;"ö");@ReplaceSubstring(Ort;"ö";"oe");@If(@Contains(Ort;"Ö");@ReplaceSubstring(Ort;"Ö";"Oe");DTV_ORT+ AZ)));
    Ort2:=@If(Ort1 ="";"";AZ + @If(@Contains(Ort1;"ü");@ReplaceSubstring(Ort1;"ü";"ue");@If(@Contains(Ort1;"Ü");@ReplaceSubstring(Ort1;"Ü";"Ue");DTV_ORT + AZ)));


    Name1:=@If(DTV_NAME1 ="";"";AZ + @If(@Contains(DTV_NAME1;"ä");@ReplaceSubstring(DTV_NAME1;"ä";"ae");@If(@Contains(DTV_NAME1;"Ä");@ReplaceSubstring(DTV_NAME1;"Ä";"Ae");DTV_NAME1 + AZ)));
    Name11:=@If(Name1 ="";"";AZ + @If(@Contains(Name1;"ö");@ReplaceSubstring(Name1;"ö";"oe");@If(@Contains(Name1;"Ö");@ReplaceSubstring(Name2;"Ö";"Oe");DTV_NAME1 + AZ)));
    Name12:=@If(Name11 ="";"";AZ + @If(@Contains(Name11;"ü");@ReplaceSubstring(Name11;"ü";"ue");@If(@Contains(Name11;"Ü");@ReplaceSubstring(Name11;"Ü";"Ue");DTV_NAME1 + AZ)));


    @Text(DTV_KTO_NR) + ";" + AZ + Name12 + AZ + ";" +Name22+ ";" +KuBz2 + ";" + Ust + ";" + AZ + Strasse2+ AZ + ";" + PoFa+ ";" + AZ + DTV_PLZ + AZ +";" + AZ + Ort2 + AZ + ";" + AZ + DTV_NATION + AZ + ";" + AZ + DTV_KUNDNR + AZ
    _______________________
    die sache ist nun die das mein Notes abstürzt sobald ich den export starte da aber am export direkt nichts veränder wurde, sondern nur in der formatierung, muss das ja da verursacht werden, kann bloss keinen fehler endecken :-?



    Danke schonmal...


    Gruss Gregor

    • Offizieller Beitrag

    Warum soviel Code? ReplaceSubstring kann Listen verarbeiten! Vereinfach mal den Code nach diesem Beispiel, dann ist es auch einfacher einen Fehler zu suchen.


    Außerdem dürfte die Ersetzung der Zeichen dieser Verschachtelung nicht sauber funktionieren.


    Code
    zeichenalt := "ä":"Ä":"ö":"Ö":"ü":"Ü": "ß";
    zeichenneu := "ae":"AE":"oe":"OE":"ue":"UE": "ss";
    
    
    KuBz := ReplaceSubstring(DTV_KURZBEZ; ZeichenAlt; ZeichenNeu);
    Name2 := ReplaceSubstring(DTV_NAME2; ZeichenAlt; ZeichenNeu);
    ...


    Hast Du viele Dokumente, dann berechne aus Performancegründen diesen String nicht in der Ansicht, sondern in einem versteckten Feld.


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • Danke für die schnelle Antwort, werd mich mal gleich dran machen, sind zwar viele Dokumente am anfang, danach kommen vl 2 -3 dazu und es werden auch nur die dann formatiert..


    Danke nochmal

  • so hab das jetzt mal eingebaut, nur leider stürzt mr notes immer noch dabei ab, sieht jetzt so aus


    ____________
    LeerText := "\"" + "\"";
    AZ := "\"";


    zeichenalt := "ä":"Ä":"ö":"Ö":"ü":"Ü": "ß";
    zeichenneu := "ae":"AE":"oe":"OE":"ue":"UE": "ss";


    KuBz := @If(DTV_KURZBEZ ="";"";AZ + @ReplaceSubstring(DTV_KURZBEZ; ZeichenAlt; ZeichenNeu) + AZ);
    Name2 := @If(DTV_NAME2 ="";"";AZ + @ReplaceSubstring(DTV_NAME2; ZeichenAlt; ZeichenNeu) + AZ);
    Name1 :=@If(DTV_NAME1 ="";"";AZ + @ReplaceSubstring(DTV_NAME1; ZeichenAlt; ZeichenNeu) + AZ);
    Strasse := @If(DTV_STR ="";"";AZ + @ReplaceSubstring(DTV_STR; ZeichenAlt; ZeichenNeu) + AZ);
    Ort:= @If(DTV_ORT ="";"";AZ + @ReplaceSubstring(DTV_ORT; ZeichenAlt; ZeichenNeu) + AZ);


    Ust := @If(DTV_USTID ="";"";AZ + DTV_USTID + AZ );


    PoFa := @If(DTV_POSTF ="";"";AZ +DTV_POSTF + AZ );


    @Text(DTV_KTO_NR) + ";" + Name1 + ";" +Name2+ ";" +KuBz + ";" + Ust + ";" + AZ + Strasse+ AZ + ";" + PoFa+ ";" + AZ + DTV_PLZ + AZ +";" + AZ + Ort + AZ + ";" + AZ + DTV_NATION + AZ + ";" + AZ + DTV_KUNDNR + AZ
    ____________


    also wie gesagt am agenten hab ich nichts geändert. Also irgendwas ist da immer noch falsch, bei anderen agenten stürzt er nicht ab


    :-? :-? :-? :-?




    EDIT:


    Nun funktionierts, wieso auch immer vl ein problem mit meinem client werd ihn sicherheitshalber neu aufsetzen



    Diali Vielen Dank!


    Gruss Gregor

  • taurec
    der agent tut nichts weiter als alle einträge zu holen (aus dem ordner) pro eintrag die 2 Spalte in ne txt datei zu schreiben und zu speichern, dann noch das export datum setzen fertig, der ging vorher und er geht jetzt immer noch... wie ich vorher schon sagte liegts wohl eher an meinem client der sich mal aufhängt wenn er lust hat :), muss ich halt mal überprüfen und ggf neu aufsetzten wenn mal zeit über ist :D



    ansonsten hast du ja recht, nur das für das problem der agent ja nicht von bedeutung ist....naja hat sich ja geklärt und die struktur des quelltextes ist dank diali eindeutig übersichtlicher, denke das ich da vorher bestimmt nen fehler drinhatte,


    schönen tag noch


    gruss Gregor :pint:

    • Offizieller Beitrag

    Ein Problem existiert noch.


    So wie es aussieht willst Du eine csv-Datei schreiben. Enthält ein String ein ", dann muss dieses durch "" ersetzt werden.
    D.h. in die Liste zeichenalt muss noch ein "\"" und in die Liste zeichenneu muss noch ein "\"\"" aufgenommen werden.



    Gruß
    Dirk


    %edit
    zu Deinem aufhängen-Problem, hast Du schon den Cahce gelöscht?
    - Kachel (inkl. aller Repliken) vom Desktop entfernen
    - Desktop komprimieren (bei redBox oder nsd nochmals von vorn)
    - Notes beenden
    - cache.ndk löschen
    - Notes starten
    - kachel auf Desktop legen
    - probieren

  • guten morgen


    nein den cache hab ich noch nicht gelöscht werd ich aber gleich mal.


    zum thema ' " ' die müssen da rein da der datev import die wohl braucht ist auch keine .csv sondern .txt, also es funktioniert so, datev kann das importieren, dank deiner unterstützung :D
    so genug geschleimt danke für den tip mit dem cache werd ich mal versuchen


    schönen freitag noch

    • Offizieller Beitrag

    Du hat mich mit dem Hochkomma falsch verstanden, ich meine nicht die Hochkommas, die den String einfassen.
    Mal ein Beispiel: in dem Feld "DTV_KURZBEZ" steht
    {wenn in diesem text ein " steht, dann...}


    daraus muss dann in der Export-Datei ein
    {wenn in diesem text ein "" steht, dann...}
    werden.


    Zumindest war es vor 10 Jahren so, als ich noch mit datev zu tun hatte.


    csv ist auch eine Text-Datei und datev ist daran angelehnt. Exportiere mal im Excel eine Datei als Typ csv und schau Dir diese im Text-Editor an.


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein