33 Stimmen

Textdateien mit fester Zeilenlänge umschreiben

Tutorial von Stefan Trost | 11.03.2022 um 21:01

In den meisten Textdateien sind Zeilenumbrüche über Zeichen realisiert, die für einen Zeilenumbruch stehen. Je nach System und Anwendungsbereich können dies andere oder auch mehrere Zeichen sein, zum Beispiel LF (#0A) auf Linux- oder macOS-Systemen oder CR LF (#0D #0A) unter Windows. Das Programm, das die betreffende Textdatei anzeigt, blendet diese Zeichen aus und stellt stattdessen einen Umbruch der Zeile dar. Eine Übersicht über übliche Zeilenumbruchtypen finden Sie auf dieser Seite.

Es gibt aber auch eine andere Möglichkeit Zeilenumbrüche in Textdateien zu realisieren, die ohne Zeichen auskommt: Die feste oder fixe Zeilenlänge. In diesem Fall werden alle Zeilen des Textes hintereinander weg geschrieben und die Definition einer Zeile ergibt sich aus einer vorher festgelegten Anzahl von Zeichen, nach der immer ein Umbruch erfolgt. Diese Art von Zeilenumbruch wird zum Beispiel manchmal für CSV-Dateien verwendet, in denen immer eine feste Anzahl von gleich langen Werten pro Zeile steht.

Beispiel für eine Textdatei mit fester Zeilenlänge

Ein Beispiel für eine solche Datei mit fester Zeilenlänge (hier 6 Zeichen pro Zeile) könnte so aussehen:

abcdefabcdefabcdefabcdef...

Wir möchten diese Datei konvertieren und statt der festen Zeilenlänge den Zeilenumbruch-Typ unseres Systems verwenden, so dass sich die Datei auch in einem durchschnittlichen Texteditor ansehen lässt.

Das Ergebnis sollte entsprechend nach der Konvertierung folgendermaßen aussehen:

abcdef
abcdef
abcdef
abcdef
...

Dateien mit fester Zeilenlänge in Dateien mit Zeilenumbruchszeichen konvertieren

Wir benutzen für die Konvertierung das Programm TextEncoder, mit dem Textdateien mit fixer Zeilenlänge in jedes beliebige andere Zeilenumbruchsformat umgeschrieben werden können.

  1. Zuerst öffnen wir die Dateien, die wir bearbeiten möchten im TextEncoder. Dazu können wir die betreffenden Dateien einfach auf das Programm ziehen. Es lassen sich beliebig viele Dateien gleichzeitig bearbeiten.
  2. Anschließend aktivieren wir auf der rechten Seite unter "Änderungen" die Option "Zeilenumbrüche". Hier können wir einstellen, mit welcher Art von Zeilenumbruch Dateien eingelesen werden sollen und welche Art von Zeilenumbruch die Dateien gespeichert werden sollen.
  3. Aus der Drop-Down-Box unter "Einlesen als" wählen wir "Zeilenumbruch nach dieser Anzahl von Zeichen (feste Zeilenlänge)" und schreiben in dem Textfeld darunter, wie viele Zeichen unsere Zeilen haben sollen (zum Beispiel 6 für unser Beispiel oben).
  4. Aus der Drop-Down-Box unter "Speichern als" wählen wir "System-Zeilenumbruch". Das wäre CR LF unter Windows. Wir können hier aber auch jeden beliebigen anderen Typen auswählen oder sogar eigene benutzerdefinierte Zeichen als Zeilenumbruch definieren.
  5. Unter "Speicheroptionen" können wir anschließend angeben, ob wir die Originaldatei überschreiben möchten oder das Ergebnis der Konvertierung als neue Datei speichern möchten.
  6. Zuletzt können wir auf den Button "Konvertieren und Speichern" klicken und damit alle Dateien in der Liste gemäß unseren Einstellungen umschreiben.

Dateien mit Zeilenumbruchszeichen in Dateien mit fester Zeilenlänge konvertieren

Natürlich können wir den TextEncoder auch dafür verwenden, Textdateien in die umgekehrte Richtung zu konvertieren. Dafür geben wir unter "Einlesen als" den aktuell verwendeten Zeilenumbruchstyp unserer Datei an ("Automatische Erkennung" ist unser Freund) und wählen unter "Speichern als" die Option "Kein Zeichen".

Mit diesen Einstellungen werden alle vorhandenen Zeilenumbruchszeichen aus unser ursprünglichen Datei gelöscht und wir erhalten eine Datei mit fixer Zeilenlänge. Voraussetzung dafür ist natürlich, dass die vorhandenen Zeilen schon gleich lang waren.

Steuerung über die Kommandozeile

Mit der Batch-Version des TextEncoders lassen sich alle genannten Aufgaben alternativ auch über die Kommandozeile aufrufen und damit per Skript steuern.

Mit dem folgenden Aufruf konvertieren wir die Datei test.txt. Eingelesen wird die Datei mit einer fixen Zeilenlänge von 10 Zeichen pro Zeile (lb-read=fixedlength-10), gespeichert wird die Datei mit dem Windows-Zeilenumbruch (lb=crlf).

TextEncoder.exe -cl test.txt lb-read=fixedlength-10 lb=crlf

Andersherum geht es mit dem Parameter lb=nochar:

TextEncoder.exe -cl test.txt lb=nochar

Mit diesem Aufruf werden alle Zeilenumbruchszeichen aus der Datei test.txt entfernt. Den Parameter lb-read lassen wir in diesem Fall weg, dadurch findet eine automatische Erkennung des Zeilenumbruchs der Datei statt. Natürlich könnten wir auch lb-read=crlf oder dergleichen schreiben, um einen bestimmten Zeilenumbruchstyp beim Einlesen zu erzwingen.

Eine Einführung in die Batch-Funktionalität des TextEncoders sowie eine Übersicht über alle verfügbaren Parameter finden Sie auf dieser Seite.

AntwortenPositivNegativ

Über den Autor

AvatarSoftware von Stefan Trost finden Sie auf sttmedia.de. Benötigen Sie eine individuelle Software nach Ihren eigenen Wünschen? Schreiben Sie uns: sttmedia.de/kontakt
Profil anzeigen

 

Ähnliche Themen

Wichtiger Hinweis

Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.

Jetzt mitmachen

Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.