iwan
Goto Top

Erstellung Textdatei mit bestimmter Satzlänge

Trennung von Daten mittels Leerzeichen

Hallo zusammen,

für eine Inhousesoftware nutzen wir eine Konfigurationsdatei, die aus einer Kopf- und einer Datenzeile besteht.
Das Problem hierbei ist, das die Daten immer an der selben Stelle anfangen müssen und Abstände zwischen den "Spalten" mit Leerzeichen gefüllt werden.
Beispiel (_ = Leerzeichen):
Zeile1: _Typ___Name_______Konfig___....
Zeile2: _XY____Beispiel___08154711_....
Aktuell wird die Datei per Hand editiert, aber da kann es schon mal zu Fehlern kommen, wenn die Daten nicht exakt an der richtigen Stelle stehen.
Nun suche ich eine Möglichkeit, wie ich das per Skript, Batch, VBS, etc. eintragen lassen kann.
Ich müsste irgendwie definieren können, wie lang die Felder sind und das bei Eingabe von weniger Zeichen der Rest mit Leerzeichen aufgefüllt wird.
Tabs funktionieren leider nicht, da dazu die Importsoftware umgeschrieben müsste.
Hat einer eine Idee, wie man das hinbekommt? Google ist heute morgen leider nicht mein Freund face-sad


PS: Windows XP Sp3, Office 2003 SP3

*nachtrag*
Ich habe etwas in Excel gefunden, um eine Variable zu begrenzen:
Dim a As String * 3
Werden mehr wie 3 Zeichen eingegeben, dann wird der Rest abgeschnitten.
Werden weniger Zeichen eingegeben, wird mit Leerzeichen aufgefüllt.
Das sieht doch nach dem aus, was ich suche.
Weitere Vorschläge sind trotzdem gerne willkommen ;)

*nachtrag²*
Danke, Tsuki, für den Hinweis, aber ich brauche Leerzeichen statt _ (die waren oben nur als Beispiel dafür).
Ich habe das ganze nun in Excel per Makro gelöst und funktioniert.

PS: wenn ich bei Tsuki auf "Antworten" gehe, erhalte ich eine Suchfenster mit dem Hinweis "Ungültiger Suchbegriff :D.

Content-ID: 150982

Url: https://administrator.de/contentid/150982

Printed on: December 2, 2024 at 17:12 o'clock

TsukiSan
TsukiSan Sep 14, 2010 at 08:24:42 (UTC)
Goto Top
Hallo Iwan,

die fehlenden Stellen (Leerzeichen) könntest du eventuell dann noch so replacen:
    Dim a As String * 5
    a = " Hal"  
    a = Replace(a, " ", "_")  
    MsgBox a

Gruss
Tsuki
BigWim
BigWim Sep 14, 2010 at 09:34:45 (UTC)
Goto Top
Ich weiß ja nicht, wie fit Du in Excel bist. Ich hätte noch einen Vorschlag, wie das ganze ohne Script läuft. Der Ansatz wäre diese Formel:

WENN(LÄNGE(F3)>A$1;LINKS(F3;A$1);LINKS(WIEDERHOLEN(" ";A$1);A$1-LÄNGE(F3))&F3)  

Die Feldlänge wird in A1 definiert und ist somit variabel - ansonsten den Ausdruck a$1 durch eine Zahl ersetzen

Der erste Teil von Wenn prüft, ob die Daten länger sind als die Spalte und nimmt dann von Links soviel in die Spalte passen.
Der zweite Teil von Wenn befüllt die fehlenden Zeichen von Links mit Leerstellen.

Der Wert, der umzuwandeln ist, wird in Zelle F3 erwartet.

Markus