Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

!-! Closed by Mod!-! Textdatei

Frage Microsoft Microsoft Office

Mitglied: Hanschi

Hanschi (Level 1) - Jetzt verbinden

19.11.2008, aktualisiert 20.11.2008, 5188 Aufrufe, 10 Kommentare

Hallo Forum,
bin neu und kein Profi!

Folgendes Problem:
Habe eine Textdatei auf Diskette. Ein Satz beginnt immer mit C00000 (5x Null). Alle folgenden Informationen gehören zu disem Satz. Wenn wieder String mit C00000 beginnt, dann vorhergehenden Satz ausgeben und neuen aufbauen, bis wieder Wechsel durch String C00000.
Wie kann ich das machen? Ich möchte eine feste Satzlänge von 320 Byte ausgeben. In einem zweiten Schritt möchte ich dann nur bestimmte Werte ausgeben, wenn Feldinhalt ist xxxx.

Ist das lösbar? Wenn Testdaten nötig sind, kann ich diese gerne liefern. Für Vorschläge wäre ich sehr dankbar!

Grüße aus München
Hanschi
Mitglied: bastla
19.11.2008 um 16:42 Uhr
Hallo Hanschi und willkommen im Forum!

Etwas genauer solltest Du vielleicht doch beschreiben,
  • wie die Datei aussieht (ob zB Zeilenumbrüche enthalten sind) - dazu am besten 3 Sätze posten (wenn Du diese zwischen Tags < code type="plain"> und < /code> - jeweils ohne das erste Leerzeichen - platzierst, werden sie unverändert dargestellt - siehe am Ende von http://www.administrator.de/helpsystem/detail.php?idx=20#toc27 ).
  • wohin die "fertigen" Sätze ausgegeben werden sollen.
  • wie der zweite Schritt genau aussehen soll (da er sich vermutlich mit dem ersten Schritt gut kombinieren lässt).

Grüße
bastla
Bitte warten ..
Mitglied: Ricci-1969
19.11.2008 um 16:50 Uhr
Hm,

ich bastel mir da kurz ein PHP-Script, kopier die Sachen auf ein webserver, lass das script laufen lad mir das Ergebnis runter. Zugegeben nicht die Musterlösung, aber funktioniert.

Aber wie "bastla" schon meinte, ein paar Zeilen posten wäre nicht schlecht...
Bitte warten ..
Mitglied: bastla
19.11.2008 um 17:02 Uhr
@Ricci-1969
Mit VBScript brauchst Du noch nicht einmal den Webserver, zB für folgende Minimallösung:
01.
Set fso = CreateObject("Scripting.FileSystemObject") 
02.
Saetze = Split(fso.OpenTextFile(WScript.Arguments(0)).ReadAll, "C00000") 
03.
For i = 0 To UBound(Saetze) 
04.
    WScript.Echo "C00000" & Saetze(i) 
05.
Next
Das Ganze mit
cscript //nologo C:\Scripts\Aufteilen.vbs "D:\Die Textdatei.txt"
gestartet würde die einzelnen Sätze im CMD-Fenster ausgeben. Analog dazu ließe sich das auch in VBA einsetzen um (wir sind ja hier im Bereich "Excel") die Sätze in eine Excel-Tabelle zu schreiben.

Grüße
bastla
Bitte warten ..
Mitglied: Hanschi
19.11.2008 um 17:02 Uhr
Hallo bastla,
so sehen die Daten aus (für mich ein endloser String). Es soll dann mit verschiedenen Felder eine Excel-Tabelle erzeugt werden.
[Edit Biber] Hier standen ECHT-Daten ------- gelösht --------[/Edit]
Grüße
Hanschi
Bitte warten ..
Mitglied: bastla
19.11.2008 um 17:06 Uhr
Hallo Hanschi!

Wie werden die einzelnen Felder festgelegt? Da Du eine fixe Satzlänge genannt hast, werden vermutlich die Felder gleichfalls eine fixe Länge haben ...

Was soll übrigens mit zB "10216" vor dem ersten Satz passieren?

Grüße
bastla

P.S.: So schwer wäre die Formatierung aber eigentlich auch nicht gewesen ...
Bitte warten ..
Mitglied: Hanschi
19.11.2008 um 17:12 Uhr
Hallo bastla,
die Felder haben eine bestimmte Feldlänge, nur bekomme ich die Definition und Satzaufbau erst morgen übermittelt. Wie funktioniert so ein VBScript? Wie muß ich das machen? Ich bin da nicht Experte.

Grüße
Hanschi
Bitte warten ..
Mitglied: Ricci-1969
19.11.2008 um 17:19 Uhr
@bastla
Ja, in etwa so würde ich das mit PHP auch machen, ein webserver hat man ja eh irgendwo. Deine Lösung ist natürlich bequemer, bin in VBScript halt nicht so fit.

Güssle Ricci
Bitte warten ..
Mitglied: Hanschi
19.11.2008 um 17:52 Uhr
Hallo bastla,

bei der Textdatei handelt es sich um eine Datenträgeraustauschdiskette mit einer Bank. Hier kannst Du den Satzaufbau ersehen:

http://www.sparkasse-pforzheim-calw.de/download/dta_inlandszahlung.pdf

Aus diesen Daten (für ca. 4500 Mitglieder) will ich als Kassenwart für unsere Abteilung (ca. 250 Mitglieder) die Einzugsdaten filtern und in einer Excel-Tabelle für weitere Auswertungen und Kontrolle aufbereiten. Das ist mein Anliegen. Da ich ein Laie in VBScript und wie Ricci vorschlägt in PHB-Script bin, bitte ich um Nachsehen.
Würde mich freuen, wenn ich es trotzdem schaffen könnte, mein Problem zu lösen.
Bin morgen wieder "online".

Grüße aus München
Hanschi
Bitte warten ..
Mitglied: Biber
19.11.2008 um 18:46 Uhr
Moin Hanschi,

das DTA-Format ist vermutlich irgendwann zwischen dem Kugelschreiber und der Alu-Folie erfunden worden, hatte seine Blütezeit irgendwann in den 80ern, als das Transportieren von 3,5"-Disketten von großen deutschen Steuerhinterzie^H^H^H Kreditinstituten als Electronic Banking euphorisch bejubelt wurde.

Führt zu drei Erkenntnissen
  • es ist ein offenes, lesbares und voll - wortwörtlich bis ins letzte Byte - dokumentiertes Format,
  • das sicherlich in den letzten 30 Jahren einige Tausend Male mit BASIC, dBase, Turbo-Pascal, VB und 20 Dialekten mehr zusammengeschrotet worden ist --- es MUSS einfach schon fertige Freewarelösungen zum "Konvertiere Text in DTA" oder "DTA zu CSV" geben
  • ..und sollte das nicht so sein, dann ist die Skripterstellung für eine/n Eure/r PraktikantInnen oder einen interessierten Neben-Jobber/ eine Neben-Jobbiene zwischen 14 und 20 Jahren die richtige Aufgabe. Kostet Euch 250 Hansels/Gretels je einen halben Euro, den Jobber 3 Abende vorm Rechner.

Auch wenn es bastla ( oder ein anderer begnadeter Skripter) in einem Bruchteil der Zeit schaffen würde - in diesem Fall widerstrebt es mir, dieses Rad hier im Forum zum (s.o. ) zig-tausendsten Mal neu erfinden zu lassen.

Zumal es eindeutig den Rahmen von "Abschub-Hilfe" beim Scripten sprengt.

Ich bitte um Dein Verständnis, aber ich schließe den Beitrag jetzt.

Grüße
Biber

Closed
Stehe gern für Erläuterung dieser Entscheidung per PN zur Verfügung.
Bitte warten ..
Mitglied: Biber
20.11.2008 um 10:18 Uhr
Nachtrag.

Ich hatte ja gestern diesen Beitrag geschlossen - Begründung siehe oben.

Per PN bekam ich von Hanschi auch die Antwort, dass er, meinem Lösungsvorschlag folgend, im Netz auch ein DTA-nach-Excel-Konvertierungstool gefunden hat und dass nun auch dieser Beitrag als "Gelöst" angesehen werden kann.

Zusätzlich habe ich weiter oben gepostete "Beispieldaten" gelöscht, da diese nicht ganz frei erfunden waren.

Grüße und danke an Hanschi für das Feedback
Biber
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst Powershell - In Textdatei suchen und ersetzen (5)

Frage von Raaja89 zum Thema Batch & Shell ...

Netzwerkmanagement
SMT by palle Server Management Monitoring Tool (6)

Link von palle1977 zum Thema Netzwerkmanagement ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...

Windows Tools
gelöst Aussendienst Datensynchronisierung (12)

Frage von lighningcrow zum Thema Windows Tools ...