Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1540to1544
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Prüfen ob Lf oder CrLf in Textdatei vorkommen

Prüfen ob Lf oder CrLf in Textdatei vorkommen
12.02.2017 18:31:19
Andre´
Hallo alle zusammen,
kann man über VBA Abfragen, ob und welche Trennzeichen in einer Textdatei vorhanden sind?
Vielen Dank im Voraus!
MFG Andre

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Prüfen ob Lf oder CrLf in Textdatei vorkommen
12.02.2017 19:12:06
Michael
Hi,
Du kannst ja eine Textdatei komplett als String einlesen und mal "Zeichen zählen".
Mit einem Mini-String geht das natürlich auch:
Sub trennzeichen()
Dim s As String
Dim z As Long, i As Long
s = "Dies ist ein Test" & vbLf & "Das ist die nächste Zeile" & vbCr & _
"Das die übernächste." & vbCrLf
For i = 1 To Len(s): Cells(Asc(Mid(s, i, 1)), 3) = Cells(Asc(Mid(s, i, 1)), 3) + 1: Next
For i = 1 To 255
Cells(i, 1) = i
If i > 32 Then Cells(i, 2) = Chr(i)
Next
End Sub

LF ist 10, CR ist 13, und wenn die Anzahl von CR und LF übereinstimmt, kann man einigermaßen davon ausgehen, daß CRLF verwendet wird.
Gruß,
Michael
Anzeige
AW: Prüfen ob Lf oder CrLf in Textdatei vorkommen
12.02.2017 22:15:50
Piet
Hallo Andre
hier mal ein Makro wo du mit einer MsgBox sofort sehen kannst ob so ein Zeichen vorkommt.
Ich erkenne es aber nur 1x! Den Range Bereich must du bitte anpasseen, bei mir war es C2:C20
mfg Piet

Sub Test_auf_CRLF()
Dim Zelle As Object
'Im Range Bereich eigenen Bereich angeben
For Each Zelle In Range("C2:C20")
Zelle.Select
If InStr(Zelle, vbCrLf) Then MsgBox "CRLF" _
Else If InStr(Zelle, vbLf) Then MsgBox "LF" _
Else If InStr(Zelle, vbCr) Then MsgBox "CR"
Next Zelle
End Sub

Anzeige
AW: Prüfen ob Lf oder CrLf in Textdatei vorkommen
12.02.2017 22:43:40
Andre´
Hallo Piet,
danke für die Meldung.
Nicht genau das was ich suche
Ich öffne eine Text-Datei mit nachfolgenden Ausschnitt Bsp. Code
..
sFilename = Application.GetOpenFilename(Filefilter:="Texte(*.txt),*.txt", Title:="Bitte Datendatei öffnen")
If sFilename = False Then Exit Sub
F = FreeFile
Open sFilename For Binary As #F
sInhalt = Space$(LOF(F))
Get #F, , sInhalt
Close
'hier möchte ich nun Abfragen nach den Lf oder CrLf
'um dann den Split richtig zu machen
ArrayData = Split(sInhalt, vbCrLf) oder ArrayData = Split(sInhalt, vbLf)
...
MFG Andre
Anzeige
Aha, darum geht's eigentlich! Bisher hattest ...
13.02.2017 00:55:39
Luc:-?
…du es versäumt, André,
dein PrimärProblem zu benennen. Das ist aber wichtiger als die Lösung eines TeilProblems eines Lösungs­wegs, den du dir selber vorstellst! Denn jetzt wird's im Grunde genommen ganz simpel:
CR heißt carriage return und ist ein Zeichen (Code 13), das den Wagenrücklauf (einer klassischen Schreibmaschine) veranlasst (und damit antiquiert), setzt also nur an den Anfang der Zeile zurück.
LF heißt line feed und ist ein Zeichen (Code 10), das das Vorrücken auf die nächste Zeile veranlasst. Dabei setzen normaler­weise Drucker und Pgmm ebenfalls an den Zeilen­Anfang (der neuen) zurück.
Die vbKonstanten für diese Zeichen heißen vbCr und vbLf; vbCrLf besteht dagegen aus zwei, nämlich beiden Zeichen. Ein Split mit vbLf als 2.Argument wird also sowohl bei vbLf als auch vbCrLf erfolg­reich sein, nur bleiben im letzten Fall die vbCr erhalten. Wenn die entfallen sollen, musst du sie doch nur löschen, also text = Split(Replace(text, vbCr, ""), vbLf) schreiben! Wozu muss das dann noch per MsgBox gemeldet wdn…‽
Gruß, Luc :-?
Besser informiert mit …
Anzeige
AW: Prüfen ob Lf oder CrLf in Textdatei vorkommen
13.02.2017 00:58:52
Jürgen
Hallo Andre,
Du kannst mit Instr() prüfen, ob ein CrLf vorhanden ist:
If Instr(sInhalt, vbCrLf) > 0 then
Oder Du ersetzt einfach alle CrLf durch LF, danach hast Du in jedem Fall das Lf als Trennzeichen:
sInhalt = replace(sInhalt, vbCrLf, vbLf)
ArrayData = Split(sInhalt, vbLf)
Gruß, Jürgen
AW: Prüfen ob Lf oder CrLf in Textdatei vorkommen
13.02.2017 21:12:50
Andre´
Hallo alle zusammen,
vielen Dank für die großartige Unterstützung, es funktioniert wie gewünscht.
MFG Andre
Na, denn iss ja jut... ;-) owT
15.02.2017 02:44:44
Luc:-?
:-?

16 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige