christiankarl
Goto Top

Access 2007 Text aus variabler länge bestimmen und durch Umbruch ersetzen (VBA)

Hallo,
ich lese Text aus einen Dateien in eine Variable um inhalte daraus in Tabellen einzufügen

Die Texte sehen z.b. so aus:

...
03.12.13 13:07:25DGTALACDieses ist ein Test
changed blub bla bla
03.12.13 13:07:DGTALACDieses ist ein Test
Wollen wir mal schauen
-und so weiter.
danke
03.12.13 13:07:DGTALACDieses ist ein Test
Wollen wir mal schauen
03.12.13 13:07:DGTALACDieses ist ein Test
und so weiter
03.12.13 12:54:DGTALACDieses ist ein Test
....

Ich lasse mit
If Inhalt(7) Like ("*??.??.?? ??:??:?????????*") = True Then  '  
            InStr(2, Inhalt(7), Chr(13) & Chr(10))

die Länge bestimmen, nur wie bekomme ich es hin, anstallt der gesamten Zeile mit Datum und Uhrzeit nur einen umbruch einzubinden

Das Ergebnis sollte wie folgt aussehen

....
changed blub bla bla

Wollen wir mal schauen
-und so weiter.
danke

Wollen wir mal schauen

und so weiter
....

Content-Key: 223635

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

Printed on: April 18, 2024 at 10:04 o'clock

Member: Xolger
Xolger Dec 04, 2013 at 09:46:09 (UTC)
Goto Top
Hallo,

ersetze doch die Zeile in deiner Weiterverarbeitung einfach durch
Chr(13) & Chr(10)
.
Und wozu ermittlest du die Länge?
Und in welche Variable wird die gespeichert?

If Inhalt(7) Like ("*??.??.?? ??:??:?????????*") = True Then  '  
            Ausgabe = Ausgabe & Chr(13) & Chr(10)


Gruß
Xolger
Member: colinardo
colinardo Dec 04, 2013 updated at 10:08:51 (UTC)
Goto Top
Hallo christiankarl,
wenn in der Variablen Inhalt(7) der gesamte Text (nicht nur eine Zeile) gespeichert ist kannst du es komplett direkt so machen:
Set myRegExp = CreateObject("vbscript.regexp")  
myRegExp.MultiLine = True 
myRegExp.Global = True
myRegExp.Pattern = "^\d{2}\.\d{2}\.\d{2} \d{2}:\d{2}[^\n]*"  
resultString = myRegExp.Replace(Inhalt(7), "")  
MsgBox resultString

falls du noch nix mit Regular Expressions am Hut hattest, hier die Erläuterung des Patterns:
^\d{2}\.\d{2}\.\d{2} \d{2}:\d{2}[^\n]*

Assert position at the beginning of a line (at beginning of the string or after a line break character) «^»
Match a single digit 0..9 «\d{2}»
   Exactly 2 times «{2}»
Match the character “.” literally «\.»
Match a single digit 0..9 «\d{2}»
   Exactly 2 times «{2}»
Match the character “.” literally «\.»
Match a single digit 0..9 «\d{2}»
   Exactly 2 times «{2}»
Match the character “ ” literally « »
Match a single digit 0..9 «\d{2}»
   Exactly 2 times «{2}»
Match the character “:” literally «:»
Match a single digit 0..9 «\d{2}»
   Exactly 2 times «{2}»
Match any character that is NOT a line feed character «[^\n]*»
   Between zero and unlimited times, as many times as possible, giving back as needed (greedy) «*»
solltest du dich unbedingt mal mit beschäftigen, das erleichtert das extrahieren von bestimmten Textpassagen erheblich !

Grüße Uwe
Member: Xolger
Xolger Dec 04, 2013 at 10:02:28 (UTC)
Goto Top
Hi,

Zitat von @colinardo:

Hallo christiankarl,
wenn dein String in der Variablen Inhalt(7) gespeichert ist kannst du es so machen:

Hab ich glatt übersehen mit der Variablen (Blindheit halt):

Dann würde es in deiner angepassten Variante heißen:
If Inhalt(7) Like ("*??.??.?? ??:??:?????????*") = True Then  '  
           Inhalt(7)=""  
Sonst gibts evtl. 2 Zeilenumbrüche.


Gruß
Xolger