Dieser Beitrag ist schon älter. Bitte vergewissern Sie sich, dass die Rahmenbedingungen oder der enthaltene Lösungsvorschlag noch dem aktuellen Stand der Technik entspricht.

Umkonvertieren von ASKII-Dateien per vbs

Mitglied: goodbytes
Hallo,
ich muss Teile aus einer ASKII-Datei, welche Semikolon als Trennzeichen hat, bestimmte Felder in eine neue Datei in ein anderes Format konvertieren, da sich die Releasestände von einem Programm stark unterscheiden.

Die Zieldatei hat keine Trennzeichen, eine neue Spalte beginnt jeweils ab einer genau definierten Stelle. Das heisst, man müsste den Inhalt immer mit Leerzeichen auffüllen, damit ich exakt auf die definierte Spaltenbreite komme.

Hier ein Beispiel aus der Quelldatei (ist eine Zeile, also keine Zeilenumbrüche):


Hier das gleiche Beispiel aus der Zieldatei:


Man sieht auch, dass in der Zieldatei auch nicht alle Informationen aus der Quelldatei benötigt werden.
(Die 0110 steht immer davor.)

Torsten

Content-Key: 101849

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

Ausgedruckt am: 30.07.2021 um 09:07 Uhr

Mitglied: bastla
bastla 14.11.2008 um 13:21:55 Uhr
Goto Top
Hallo TorstenB!

Wäre es wohl von Dir zuviel verlangt, die Zusammensetzung der neuen Datei genau zu beschreiben (Stellenanzahl bzw Positionen, Herkunftsspalte - stammt etwa das erste "M" aus der Spalte 23 oder 31, woher kommt das "E" vor 44010.. sowie 44010 selbst? - etc)?

Grüße
bastla
Mitglied: goodbytes
goodbytes 14.11.2008 um 14:48:33 Uhr
Goto Top
Hallo bastla,

hast natürlich recht, dass ich da natürlich noch eine genauere Beschreibung nachliefern sollte ...

Ich werd mich mal am Wochenende ransetzen, heute schaffe ich`s leider nicht mehr.

Vielen Dank erstmal, dass du helfen willst ...

Bis dann erstmal ein schönes Wochenende !!! :-) face-smile

Torsten
Mitglied: talkinghands
talkinghands 14.11.2008 um 19:12:59 Uhr
Goto Top
Hi Torsten,

das sollte Dir ungefähr eine Ahnung geben wie man mit so etwas via VB Script umgeht.



Gruss

Matthias
Mitglied: Biber
Biber 14.11.2008 um 19:44:12 Uhr
Goto Top
@talkinghands
<nur halb OT>
Ich bin ja nur Gast in diesem Teil des Forums und WEIT davon entfernt, VBScript für eine strukturierte Sprche zu halten.
Noch weniger halte ich mich für übertrieben ordnungsliebend (dafür könnte ich Zeugen benennen!).

Aber diese Art von Freistil bei der Variablen-Benamsung

  • mal "WindowTitle" oder "ExportDirectory"
  • mal "cString" und "intpos"
  • mal "meineVar" und "LOGTXT"
  • mal "Dsatz_Neu" und "export_Datei"

.... das bitte nicht unbedingt einem Neu-Einsteiger so vormachen.
</nur halb OT>

Grüße
Biber
Mitglied: talkinghands
talkinghands 15.11.2008 um 04:00:35 Uhr
Goto Top
@Torsten
Ich habe das Ganze etwas abgespeckt und dem Verwendungszweck näher gebracht .



Gruss

Matthias
Mitglied: bastla
bastla 15.11.2008 um 16:31:34 Uhr
Goto Top
@talkinghands

Da hast Du ja ein ganzes Programm daraus gemacht ...

... als Script (und zur Umwandlung nur einer Datei) sollte es auch etwas knapper gehen (wobei ohnehin fast die Hälfte auf das Dateihandling entfällt, was sich bei Start über einen Batch noch deutlich reduzieren ließe):
Aufgerufen werden kann das Script per Commandline (Beispiel dafür wird angezeigt, wenn das Script ohne Parameter gestartet wird) oder einfach durch Ziehen der Quelldatei auf die Scriptdatei.

Grüße
bastla
Mitglied: talkinghands
talkinghands 15.11.2008 um 18:00:17 Uhr
Goto Top
@bastla

das kleine Script hat ja nur 79 Zeilen und ist ein wenig strukturiert.
Ich denke, das macht es für den Leser der Zeilen verständlicher.

Das Script ist so konzipiert, dass mehrere Dateien abgearbeitet werden können.


Anhand deiner Herangehensweise sieht er doch auf welch verschiedene Arten man an eine solche Aufgabe lösen kann. Und ich selbst kann dabei auch etwas durch deinen Lösungsvorschlag lernen.

Gruss

Matthias
Mitglied: bastla
bastla 15.11.2008 um 18:20:13 Uhr
Goto Top
@talkinghands
Natürlich kein Einwand gegen Strukturierung - ich neige einfach nur dazu, für ein "Script" wenig Aufwand zu treiben (auch, da wegen des geringen Umfanges der Überblick nicht so schnell verloren geht), und daher zB auf unnötige Variablen (und deren Deklaration ;-) face-wink) zu verzichten ("LineNew" ist die Ausnahme und soll tatsächlich der Übersichtlichkeit dienen).

Findest Du meinen Ansatz oben schwer verständlich?
(Mich selbst stören daran die Kommentarzeilen ... ;-) face-wink)

Grüße
bastla
Mitglied: talkinghands
talkinghands 15.11.2008 um 19:47:57 Uhr
Goto Top
@bastla

Nein, der Code ist gut verständlich für mich.
Wirklich effizient und minimal.
Da kann man sich was dabei abgucken :-) face-smile

ciao

Matthias
Mitglied: goodbytes
goodbytes 16.11.2008 um 13:31:22 Uhr
Goto Top
Hallo ihr Beiden,
sorry, dass ich mich jetzt erst melde. Hatte das Wochenende ziemlich viel um die Ohren (und meine zwei kleinen Stöpsel haben mich zusätzlich noch ziemlich viel Nerven gekostet).

Ich würde mal sagen, dass ich es mal mit euren (eigentlich schon fertigen Skripten) in den nächsten Tagen mal probiere. Erst mal in Ruhe im Zug zur Arbeit in ausgedruckter Form durcharbeiten. Allein die Lösung ist ja nicht Alles; ich möchte es ja auch verstehen und was draus lernen. :-) face-smile

Dann meld ich mich auf jeden Fall, wenn`s läuft, oder ich noch Fragen habe.

Vielen Dank erst einmal an euch !!! :-) face-smile

Torsten
Mitglied: goodbytes
goodbytes 21.11.2008 um 07:45:42 Uhr
Goto Top
Hallo,
leider habe ich festgestellt, dass ich um ein Update auf die neue Version doch nicht herum komme.

Das von bastla am Anfang erwähnte (und sich auch ständig ändernde) "E44010..." ist für die alte Version unbedingt erforderlich, wird aber in der neuen Version nicht mitgeliefert.

Leider ist es nicht möglich die tatsächliche Bedeutung dieses Wertes herauszubekommen. Selbst der Hersteller der Software hüllt sich darüber in Schweigen. Klar - er will ja auch das neue Produkt verkaufen...

Auf jeden Fall habe ich viel von euch über das Umkonvertieren von ASKII-Dateien gelernt; so was benötige ich immer wieder.

Vielen vielen Dank an euch und ein schönes Wochenende !!! :-) face-smile

Torsten
Heiß diskutierte Beiträge
general
Telekom hat größere StörunganteNopeVor 1 TagAllgemeinInformationsdienste29 Kommentare

Moin, es scheint als hätte die Telekom gerade eine größere Störung. Bei vielen Kunden mit Telekom-Internetanschluss funktionieren Office 365 und auch IMAP-Mails nicht. Wartezeit in ...

question
Windows 365SarekHLVor 1 TagFrageWindows 1112 Kommentare

Hallo zusammen, nun ist es also soweit - Microsoft stellt mit "Windows 365" die Weichen in Richtung Windows as a Service: Wenn Microsoft da schreibt ...

question
Geplanter Server für Home LABraxxis990Vor 1 TagFrageServer-Hardware15 Kommentare

Guten Tag , Ich möchte gern meine aktuelle Hardware Tauschen. Im Einsatz ist ein kleiner Lenovo M93p ( Glaube ). Dort läuft ESXI mit 3 ...

question
Massive Probleme mit Windows Suche, Taskbar, Windows Standard Apps auf jedem Windows 10-PC im Firmennetzwerkrznr666Vor 22 StundenFrageWindows 1027 Kommentare

Hallo liebe Community, die PCs in unserem Unternehmen weisen folgende Probleme auf. Die Fehler treten nach einiger Zeit auf JEDEM Windows 10-PC auf, der genaue ...

question
Absicherung Exchange ServerLKleemannVor 21 StundenFrageExchange Server6 Kommentare

Hallo zusammen, wir sind bei uns in der Firma nun endlich vom Exchange POP3 Connector weggekommen und empfangen nun unsere E-Mail direkt über MX-Einträge. Nun ...

question
Anfragen an internen- und externen DNS Server gelöst BPeterVor 1 TagFrageWindows Server17 Kommentare

Hallo, im Homeoffice soll eine DNS Anfrage für Softphone über einen externen DNS Server laufen und nicht über den internen DNS Server. Dies soll aber ...

question
CMS für Lebenslauf einer Maschine gelöst rrobbyyVor 1 TagFrageCMS10 Kommentare

Hallo zusammen, im Zuge einer Masterarbeit loten wir gerade ein paar Möglichkeiten aus, wie man die (alle) technischen Daten einer Anlage (Kran-Anlagen) strukturiert und nachvollziehbar ...

question
Domainbenutzer Passwort lokal ändern?gecekusuVor 1 TagFrageWindows Userverwaltung9 Kommentare

Hallo zusammen, gibt es die Möglichkeit das Benutzerpasswort von lokalen Benutzer am PC der in einer (nicht verbundenen) Domain ist zu ändern? Sprich, Benutzer ist ...