[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Feb 2001
    Beiträge
    20.749
    Excel läuft nie unter UTF-8 (1-4-Zeichen) sondern immer mit Unicode (WideChar = 16-Bit), dies entspricht dem UCS2 der AS/400. UTF-8 dient ausschließlich als Austauschformat.
    WideChar wurde von Microsoft mit Windows98/2000 eingeführt.
    Während VB6/VBA.6 bereits WideChar als default hatte, arbeitete VB5 und VBA.5 noch mit Char.

    Zu erkennen ist das an der Funktion ChrW(), dies ist die WideChar-Funktion zu Chr() 8-Bit.
    Das Gegenstück dazu ist AscW() statt Asc() um den Unicodewert auszulesen.
    Und noch zusätzlich gibt es die Unterscheidung zwischen Len() = Zeichenlänge und LenB() = ByteLänge.

    Entschuldigung für die Korrektur;-).

    Eleganter könnte man das sicherlich über ein VBA-AddIn steuern, dem man in einer Tabelle die Quell- und Zielzeichen hinterlegt.
    Beim Start des AddIns wird dies in eine 16-Bit-Tabelle geladen, die für alle Codes eine 1:1-Übersetzung speichert und an Hand der Vorgabetabelle die Ausnahmen dazu lädt.
    Es gibt dann eine Funktion, der man dann den Zellwert übergibt und den Ersatzwert zurückgibt.
    Das Bilden des Ersatzwertes erfolgt einfach über eine Schleife mit den Funktionen AscW() als relativer Index der gespeicherten Tabelle für die Funktion ChrW().

    Beispiel:
    dim Ersatz(0 to 32767) as integer 'zu befüllende Tabelle beim Init

    public function ErsatzString(byval FromString as string) as string
    dim xI as integer
    ErsatzString = FromString
    for xI = 1 to len(ErsatzString)
    mid$(ErsatzString, xI, 1) = ChrW(Ersatz( AscW(Mid$(ErsatzString, xI, 1))))
    next
    end function

    Der Vorteil ist auf jeden Fall die erhebliche Einsparung der Laufzeit, da hier keine Suchfunktionen durchgeführt werden.
    Die Replacefunktion scannt nach dem Code, ersetzt alle Vorkommen und erstellt einen neuen Zellwert.
    Dies erfolgt je Zelle und Code!
    Die VBA-Funktion erstellt nur 1 neuen Zellwert und ersetzt alle Zeichen auf einmal.
    Viel Spaß beim Probieren, aber ich glaube es lohnt sich.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  2. #2
    Registriert seit
    Apr 2002
    Beiträge
    32
    Danke für Deine genauen Erklärungen.
    Du hast natürlich Recht, dass alles viel eleganter gelöst werden kann
    und dazu hat es in diversen Excel Forum auch Beiträge.

    Da die Laufzeit bei uns kein Problem ist werde ich Deine gut Lösung dann in einer ruhigen Zeit anschauen
    das heisst wenn ich pensioniert bin

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.749
    "wenn ich pensioniert bin" <= da kann ich ja wohl noch lange darauf warten;-).
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

Similar Threads

  1. QSH und Zeichensatz
    By Curious in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 06-04-18, 10:47
  2. Datenübertragung AS400 --> Excel
    By Zuther in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 11-08-15, 10:09
  3. Daten via CSV von einer auf eine andere iSeries exportieren
    By ensöianer in forum IBM i Hauptforum
    Antworten: 7
    Letzter Beitrag: 04-12-14, 12:18
  4. Drucken mit polnischen Zeichensatz
    By Andreas Herzfeldt in forum NEWSboard Drucker
    Antworten: 3
    Letzter Beitrag: 27-06-01, 17:22
  5. Zeichensatz anzeigen
    By Burgy Zapp in forum NEWSboard Server Software
    Antworten: 0
    Letzter Beitrag: 03-04-01, 20:07

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •