Karl Gustav II.: String zerlegen in Editfelder

Hallo!

Gleich mal vorweg: Mir fiel keine gescheite Formulierung für eine Suche ein, daher habe ich auch bei Google & Co nichts gefunden.
Sollte jemand eine entsprechende Suchabfrage kennen -> bitte posten. ;)

Nun zum Anliegen:
Ich habe einen langen Text (String), der dynamisch durch eine Zeichenkombination auf mehrere Editfelder aufgeteilt werden soll.
Die Editfelder sind auf einer Webseite, deren Namen und Anzahl sind variabel (ich habe darauf keinen Einfluß).

Als Beispiel:
Mein_Name_Ist_Karl_Gustav wäre meine Zeichenfolge und auf der Seite sind (angenommen) 10 Editfelder.
Ich möchte nun realisieren, dass anstatt der "_" ein Sonderzeichen eingefügt wird, welches mir folgendes ermöglicht:
Wenn ich die GANZE Zeichenfolge kopiere und in das ERSTE Editfeld einfüge, soll eben an diesem Sonderzeichen ein Umbruch stattfinden, welcher den Text im jeweils nächsten Editfeld einfügt.

Also so was in der Art:
Aus "Mein_Name_Ist_Karl_Gustav" im ersten Editfeld soll das werden:

Editfeld 1: Mein
Editfeld 2: Name
Editfeld 3: Ist
Editfeld 4: Karl
Editfeld 5: Gustav
Editfeld 6: <leer>
Editfeld 7: <leer>
Editfeld 8: <leer>
Editfeld 9: <leer>
Editfeld 10: <leer>

Meine Frage ist nun, ob es so ein Sonderzeichen gibt? Im Normalfall würde ich an der Stelle die einzelnen Textfolgen separat kopieren/einfügen und z.B. per [Tab] zum nächstes Feld springen.
Da ich aber richtig große Datenmengen eingeben will, suche ich nach einer Möglichkeit, dass eben per kombiniertem String zu realisieren.

Dazu sei gesagt:
Es handelt sich um eine große Zahl von Einträgen in einer Exceltabelle, per Makro würde ich daraus einen String basteln mit eben jenem Sonderzeichen, den String dann kopieren (per Makro in die Zwischenablage) und in die Eingabemaske einfügen (rechte Maustaste -> einfügen oder per [Strg]+[V]). Dort soll dann in jedem Editfeld (sind nicht nur 10, das war nur zur Erklärung) dann der jeweils nächste Eintrag der ursprünglichen Excel-Tabelle stehen.

Ungefähr verstanden?

Das Problem ist wie gesagt, dass in der Exceltabelle sehr viele Werte stehen und ich nicht jeden einzeln kopieren/einfügen will.

Die Umsetzung des Makros in Excel ist kein Problem, mir fehlt nur eine entsprechende Methode, um den Wechsel zum nächsten Editfeld vorzunehmen.

Wenn es statt einem Sonderzeichen in einer Zeichenfolge direkt einen geeigneten Befehl in Excel gibt (spezielle Kopierfunktion????) dann immer her damit!!! :)

Falls es eine Rolle spielt:
Die Eingabemaske wo nachher alles rein soll wird über den IE (Version 6 oder höher) gemacht, Firefox oder Opera stehen nicht zur Verfügung (=Firmenrechner).

Vielen Dank schonmal für Anregungen oder Hilfe. :)

MfG, KG II.

  1. Mein_Name_Ist_Karl_Gustav wäre meine Zeichenfolge und auf der Seite sind (angenommen) 10 Editfelder.
    Ich möchte nun realisieren, dass anstatt der "_" ein Sonderzeichen eingefügt wird, welches mir folgendes ermöglicht:
    Wenn ich die GANZE Zeichenfolge kopiere und in das ERSTE Editfeld einfüge, soll eben an diesem Sonderzeichen ein Umbruch stattfinden, welcher den Text im jeweils nächsten Editfeld einfügt.

    Meine Frage ist nun, ob es so ein Sonderzeichen gibt?

    Der Tabulator würde sich anbieten, üblicherweise mit \t dargestellt, Zeichencode 9.

  2. Hi,

    Ich möchte nun realisieren, dass anstatt der "_" ein Sonderzeichen eingefügt wird, welches mir folgendes ermöglicht:

    ein Zeichen, egal welches, wird Dir hier gar nichts nützen. Du benötigst zunächst einmal eine Programmlogik, die das bewirkt, was Du haben möchtest. Diese kann sich dann eines Zeichens bedienen - beispielsweise des Unterstrichs - um eine Trennung vorzunehmen und die einzelnen Teile auf verschiedene Eingabelfelder zu verteilen.

    Es bietet sich JavaScript an, welches (z.B.) auf onkeyup reagiert.

    Wenn es statt einem Sonderzeichen in einer Zeichenfolge direkt einen geeigneten Befehl in Excel gibt (spezielle Kopierfunktion????) dann immer her damit!!! :)

    In Excel wird kein Browser befehligt. Höchstens ein Browser-Control, welches sich innerhalb des Excel-Sheets befindet; hier versagen dann allerdings meine Kenntnisse.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
  3. Hallo,

    dein Vorhaben wird manchmal als "tokenize" bezeichnet. Tokenizing kannst du z.b. erreichen durch

    • eine Split Funktion (Zeichenkette -> Array)
    • eine Regular Expression und deren Captures

    Ein Sonderzeichen zum Zeilenumbruch ist z.b. vbCrLf (eine VB Konstante) oder \r\n (Steuerzeichen für Carriage Return und New Line) oder Chr(10) + Chr(13) (ASCII-Character 10 und 13 hintereinander).

    Wo ich bei deinem Anliegen noch nicht durchsehe: Du hast eine Eingabemaske mit n Textfeldern (wobei n variabel ist und du n nicht zuverlässig bestimmen kannst) auf einer HTML Seite in einem Internetexploder 6. Und du möchtest einen beliebigen Text auf diese n Eingabefelder aufteilen? Und dann hat das noch was mit Excel zu tun?

    Bring doch mal bitte etwas Klarheit hinein, was und wo ist dein Eingabeformular.

    Ciao, Frank

    1. Also, wie erwähnt habe ich eine Exceltabelle, mit sagen wir mal Bestellnummern (ist etwas komplexer, aber für den Zweck reicht's).

      Diese Nummern muss ich eine Eingabemaske eingeben, die mir von unserer IT zur Verfügung gestellt wird, die ich aber nicht weiter bearbeiten kann. Also ausfüllen schon, aber ich kann eben nicht die Feldanzahl bestimmen sondern das wird irgendwo scriptmäßig generiert.

      Ich will nichts weiter erreichen, als das ich in irgendeiner Form möglichst viele Bestellnummern auf einmal kopieren und mit einem einzigen Klick schön in die Editfelder eingefügen kann. Also nur in das erste Feld "alles einfügen" und der Rest teilt sich automatisch auf.

      Ich hatte gehofft, dass es ohne externe Tools/Scripte geht? Einen Tabulator als Zeichen dazwischen hat leider nicht den gewünschten Effekt sondern wird tatsächlich als Platzhalter im gleichen Feld dargestellt. (Hatte die Idee auch schon, aber eben ohne Erfolg)

      Ich kam nur auf die Idee, dass es so etwas geben muss, weil ich vor einiger Zeit mal für einen Download per FTP eine Zeichenfolge kopieren sollte und diese im Feld "QuickConnect" eingegeben habe.
      Da war das ähnlich:
      Eine lange Zeichenfolge, diese kopiert und im FTP-Tool im ersten Feld eingegeben. Das wurde dann schön auf die nächsten Zeilen verteilt, ohne weiteres Zutun. Ist leider schon eine ganze Weile her, daher kann ich kein Beispiel posten.

      Hoffentlich ist es jetzt etwas klarer?

      MfG, KG II.

      1. Hi,

        Diese Nummern muss ich eine Eingabemaske eingeben, die mir von unserer IT zur Verfügung gestellt wird

        Und diese Eingabemaske ist genau was? Eine HTML-Seite, die als Formular dann abgeschickt wird und auf einem Server verarbeitet wird?

        Dann müsstest du ein Plugin/Addon für deinen Browser schreiben, welches in der Lage ist, den Inhalt der Zwischenablage zu benutzen und empfangenes HTML (die Eingabemaske) zu analysieren. Oder du erstellst ein Excel-Addin mit denselben Features. Das ist aber alles andere als trivial von hier an.

        Mach doch eurer IT den Vorschlag, sie stellen einen Service bereit, mit welchem du ein MS Excel Workbook auf den Server laden kannst und es dort verarbeitet wird. MS Excel kann man über ein Objektmodell steuern oder auch via ODBC Datenbankkonnektivität. MS Excel bietet auch (ab einer gewissen Version) eine Export als XML Spreadsheet an, welches man dann durchaus ohne jegliches Excel Programm auf dem Server verarbeiten könnte. Auch ein Export als Text (CSV -> Comma Separated Values) und dann Hochladen auf den Server und dortiges Verarbeiten wäre denkbar.

        Pauschal würde ich sonst einfach sagen, das, was du momentan vorhast, ist so (einfach) nicht möglich.

        Ciao, Frank