Verbessern Sie die Anzeige der Positionskodierung für Debugzwecke, beispielsweise durch die Verwendung von Excel mit einem Zeichen pro Zelle.

Verbessern Sie die Anzeige der Positionskodierung für Debugzwecke, beispielsweise durch die Verwendung von Excel mit einem Zeichen pro Zelle.

Ich muss folgendes Problem lösen: Ich arbeite mit positionskodierten Dateien. Diese Dateien zeigen Zeichen an bestimmten Positionen in der Zeichenfolge. Jede Zeile ist ein Datensatz, und die Bedeutung eines Zeichens in einer Zeile hängt von seiner Position ab. Um sie zu debuggen und zu beheben, muss ich die Cursorposition in der aktuellen Dateizeile sicherstellen.

Die meisten Editoren, einschließlich Notepad++, zeigen die Spaltenposition in der Datei an. Obwohl dies hilfreich ist, möchte ich es einfacher machen.

Ich möchte, dass ein Editor irgendwie die Zeichenpositionen in meinen Dateien hervorhebt.

Folgendes habe ich mir überlegt:Excel 2010ein Zeichen pro Zelle.

Idealerweise würde Excel mir erlauben, einen Text in eine vorformatierte Tabelle einzufügen mitFarben,GrenzenUndÜberschriftenspaltenIch hätte mein Problem gelöst. Aber ich muss sicherstellen, dass Excel ein Einfügen akzeptiert, indem es jedes Zeichen in eine Zelle einfügt und zur nächsten Zeile geht, wenn ein CRLF gefunden wird.

Das ist eine ziemlichXY-Problemund ich hoffe, ich habe meine Frage bestmöglich gestellt

  • Problem X: Lesbarkeit positionscodierter Dateien verbessern
  • Problem Y: Excel könnte dabei ein guter Verbündeter sein. Wie füge ich eine ganze Datei mit einem einzelnen CTRL+ in eine Zelle pro Zeichen ein V?

Beispiel

Da es sehr komplex ist, in dieser Frage reale Daten zu veröffentlichen, kann ein allgemeiner Datensatz (in der Dokumentation) wie folgt ausgedrückt werden:

  • Jede Zeile ergibt einen einzelnen Datensatz
  • Zeichen 0 ist Datentyp, alphanumerisch
  • Die Zeichen 1:8 sind ein Nachname
  • Zeichen 9:15 sind ein Vorname
  • Zeichen 16:30 sind eine Telefonnummer
  • Die Zeichen 31:38 sind ein Geburtsdatum im Format jjjjMMtt
  • Füllzeichen sind Leerzeichen
  • Zeilen werden mit CRLF beendet

Beispiel für einen „gültigen“ Datensatz (ich tippe ihn von Hand ein)

0SMITH   JOHN    +13652145896   19780101\r\n

Nach dem Excel-Beispiel könnte ich diese Daten in farbigen Spalten anzeigen und ein Datenblatt mit Farb-/Rahmenführungen problemlos bearbeiten

Antwort1

Da ich mich sehr auf „ein Zeichen pro Zelle“ konzentriere, würde ich eine Vorlage vorschlagen, bei der Spalte A von Blatt2:5 mit Blatt1 gefüllt ist! B:B bis E:E. Gruppieren Sie dann so, dass in jedem Blatt2:5 B1 vorhanden ist, =MID($A1,COLUMN()-1,1)und kopieren Sie nach Bedarf quer und nach unten. Blatt1 ist für Ihre Quelldaten reserviert:

Beispiel SU603915

Antwort2

Die folgende Formel scheint gut zu funktionieren, wennAnzeigeder Datensatz

Lokalisiert

=STRINGA.ESTRAI(INDIRETTO(CONCATENA("PASTEME!A";RIF.RIGA()));RIF.COLONNA();1)

Manuell internationalisiert (bitte Funktionsnamen im englischen Excel korrigieren)

=MID(INDIRECT(CONCATENATE("PASTEME!A",ROW())),COLUMN(),1)

Jetzt muss ich es nur noch auf das gesamte Blatt kopieren und Formatierung/Umrandung/Farbe hinzufügen (Tausende von Datensätzen in jedem Datensatz)

Das Problem mit dem Formelansatz ist, dass ich nicht einfachbearbeitenDaten im Datensatz, aber zumindest habe ich eine klare Vorstellung davon, wo ich nach Änderungen suchen muss und wo ein Fehler im Datensatz sein könnte (oder einfach „die Daten sofort verstehen“)

Antwort3

Am einfachsten geht das, indem Sie einfach ein vorformatiertes Excel-Arbeitsblatt (Vorlage) verwenden und die Data>From Text>Fixed WidthOption nutzen. Auf diese Weise können Sie alle Zeichen in eine eigene Zelle bringen und Ihren Bereich in einer beliebigen Zelle der Tabelle beginnen.

Wenn diese Aufgabe wiederholt ausgeführt werden muss, würde ich VBA verwenden, um den Vorgang etwas zu automatisieren. Beispielsweise würde ich ein Dialogfeld verwenden, um nach einer Datei und einem Punkt zum Einfügen zu fragen, aber den ganzen Rest automatisch erledigen.

Was Ihr Y betrifft, glaube ich nicht, dass eine der Einfügeoptionen das CTRLVbewirkt, was Sie möchten.

verwandte Informationen