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

Wie füge ich ein Zeilenendezeichen in eine Textdatei ein?

Frage Entwicklung Basic

Mitglied: muck2000

muck2000 (Level 1) - Jetzt verbinden

20.04.2009, aktualisiert 20:26 Uhr, 8574 Aufrufe, 12 Kommentare

Hallo Gemeinde, ein Hilferuf nach schon einigen Stunden des wurschtelns..:

Ich habe eine Textdatei (.asc/.txt) die kein Zeilenendezeichen enthält. Die Satzstruktur der Daten ist bekannt: 32 Felder mit jeweils bekannter Länge, gesamte Satzlänge eines Datensatzes 372 Zeichen. Es sind keine Trennzeichen zwischen den Feldern bzw. zwischen den Sätzen, alles hintereinander weggeschrieben, also auch die Folgesätze. Ein manuelles Bearbeiten der Datei (2,5MB) entfällt aufgrund der Datenfülle.
Da ich mit einer defenitiven Satzlänge und einem Zeilenendezeichen (CR/LF) oder einem anderen Satztrenner (TAB od. Semikolon) in EXCEL weiterkomme, wäre mir mit einem kleine Basicscript oder einer Batch-Datei seeehr geholfen.
Vielen Dank im Voraus.
Mitglied: LotPings
20.04.2009 um 21:09 Uhr
Hallo muck2000,

einfach in einem cmd Fenster oder Batch ausführen:
Echo.>>VorhandeDatei.txt
geht auch andersrum
>>VorhandeDatei.txt Echo.
Gruß
LotPings
Bitte warten ..
Mitglied: muck2000
20.04.2009 um 21:20 Uhr
Hallo LotPings,
danke für die Antwort, aber trifft es nicht.
Ich möchte einen Datenstream einlesen und an bestimmter Stelle (nach 372 Zeichen jeweils) ein Zeichen einfügen. Dieser Vorgang wiederholt sich so oft, bis die unbekannte Anzahl an Gesamtdatensätzen durch einen Trennner (CR/LF, Tabstopp, Semikolon oder was auch immer) getrennt ist.
Kannst Du helfen?
Gruß
muck2000
Bitte warten ..
Mitglied: bastla
20.04.2009 um 21:43 Uhr
Hallo Muck2000 und willkommen im Forum!

Versuch es einmal mit dem folgenden VBScript:
01.
DateiEin = "D:\DateiEin.txt" 
02.
DateiAus = "D:\DateiAus.txt" 
03.
L = 372 
04.
 
05.
Set fso = CreateObject("Scripting.FileSystemObject") 
06.
TextGesamt = fso.OpenTextFile(DateiEin).ReadAll 
07.
 
08.
Set Aus = fso.CreateTextFile(DateiAus) 
09.
For i = 1 To Len(TextGesamt) Step L 
10.
    Aus.WriteLine Mid(TextGesamt, i, L) 
11.
Next 
12.
Aus.Close
Grüße
bastla
Bitte warten ..
Mitglied: LotPings
20.04.2009 um 21:51 Uhr
Hab erst zu schnell gelesen und jetzt war bastla mal wieder schneller

Falls OP etwas programmier Erfahrung hat käme auch auch eine komfortablere Lösung in betracht die direkt Excel Dateien erstellen kann. Auf CodeProject gibt es eine schöne unter LGPLstehende Library die ggfs alles erschlagen kann. FileHelpers v2

Gruß
LotPings
Bitte warten ..
Mitglied: bastla
20.04.2009 um 22:00 Uhr
@LotPings
und jetzt war bastla mal wieder schneller
Ausnahmsweise ...

Wenn's nicht alle zwei Tage erforderlich ist, macht der Import in Excel als Textdatei "mit fester Breite" auch nicht so besonders viel Arbeit (einmal müssen die Feldlängen eben erfasst werden); abgesehen davon lässt sich das Script auch in VBA verwenden, womit sich dann ebenfalls gleich der Eintrag in eine Excel-Tabelle umsetzen lässt ...

Grüße
bastla
Bitte warten ..
Mitglied: muck2000
20.04.2009 um 22:00 Uhr
Hey, danke Ihr Beiden! Ich hab die Daten auf einem anderen Rechner und teste Bastla´s Skript morgen direkt aus. Sieht aber schon prima aus. Ich bedanke mich recht herzlich. Also, Erfolgsbestätigung morgen! Tschüss muck2000
Bitte warten ..
Mitglied: 76109
21.04.2009 um 09:29 Uhr
Hallo baslta,

Frage: Warum hast Du nicht

01.
.... 
02.
TextLine = Ein.Read(L) 
03.
Aus.WriteLine TextLine 
04.
....
verwendet.

Gruß Dieter
Bitte warten ..
Mitglied: LotPings
21.04.2009 um 09:36 Uhr
Zitat von 76109:
Frage: Warum hast Du nicht
> TextLine = Ein.Read L  
> Aus.WriteLine TextLine 
> 
verwendet.

Hallo Dieter.
Weil es keinen Recordseparator gibt - der soll doch erst erzeugt werden.
Du würdest die ganze Datei lesen und genauso wieder wegschreiben.

Gruß
LotPings
Bitte warten ..
Mitglied: 76109
21.04.2009 um 09:42 Uhr
Hallo LotPings,

bitte genau lesen.

Er liest mit Read(L) = Read Long Anzahl Zeichen --> L = 372 Zeichen einlesen. Next 372 Zeichen usw.

Gruß Dieter
Bitte warten ..
Mitglied: muck2000
21.04.2009 um 10:55 Uhr
Hallo Bastla,
hat super geklappt, nochmals vielen Dank!
Grüße
Muck2000
Bitte warten ..
Mitglied: bastla
21.04.2009 um 14:29 Uhr
Hallo didi1954!
Warum hast Du nicht ...
Ich bevorzuge das Lesen "am Stück", und eine Datenmenge von 2,5 MB sollte in heutigen Zeiten hinsichtlich des Speichers kein Problem darstellen.

Wo siehst Du den Vorteil Deines Vorschlages (der natürlich funktionieren würde)?

Grüße
bastla
Bitte warten ..
Mitglied: 76109
21.04.2009 um 14:56 Uhr
Hallo bastla,

einen besonderen Vorteil sehe ich darin nicht unbedingt. War nur etwas verwundert, weil mir diese Funktion als einfachste in den Sinn kam.

Gruß Dieter
Bitte warten ..
Neuester Wissensbeitrag
Microsoft

Lizenzwiederverkauf und seine Tücken

(5)

Erfahrungsbericht von DerWoWusste zum Thema Microsoft ...

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

Frage von Raaja89 zum Thema Batch & Shell ...

Windows Server
gelöst Wie füge ich diesem Script die Email Adresse hinzu (16)

Frage von rainergugus zum Thema Windows Server ...

Java
gelöst Textdatei in Array speichern (zeilenweise) (1)

Frage von Bruchsal zum Thema Java ...

VB for Applications
Import Textdatei von Dateiname aus Zelle (2)

Frage von grasihuepfer zum Thema VB for Applications ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (17)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
Windows 10 RDP geht nicht (16)

Frage von Fiasko zum Thema Windows Netzwerk ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...