txt zeilenweise mit variablen vergleichen

wutz1111

Grünschnabel
also, diesmal würde ich gerne mein projekt so erweitern das eine txt datei zeilenweise mit variablen verglichen wird
bsp:...
ich heiße paul und bin 35 jahre alt
ich heiße wutz und bin 11 jahre alt
...
also sobald der name und das alter übereinstimmen soll diese zeile aus der txt herausgegriffen werden und ebenfals einer variablen zugewiesen werden...

schonmal thx für die lösungsvorschläge
mfg
 

Celvin

Mitglied
Ok, ich gehe davon aus, dass du Name und Alter immer als erstes in der Zeile stehen hast:

Dim Parts() As String
Dim Zeile As String
Dim WasFound As Boolean
Dim nC As Integer,nD As INteger

nC = FreeFile
Open "datei.bla" for input as #nC
Do Until EOF(nC)
Line input #1,Zeile
Parts = Split(Zeile,Chr$(32))
if Parts(0) = "Paul" and Parts(1) = "35" then
WasFound = true
Exit Do
End If
Loop
Close #nC
If Not WasFound then Zeile = ""

In diesem Beispiel sind Name und Alter fest, aber du kannst natürlich auch Variablen einsetzen. Wenn Name und Alter
gefunden wurden, enthält die Variable Zeile nachher die komplette Zeile, ansonsten ist sie leer.
 

wutz1111

Grünschnabel
thx, es funzt (teilweise => was nicht an dir liegt)
sondern weil die txt doch nicht immer nach dem gleichem schema aufgebaut ist...:(
also des gleiche problem nochmal mit ner datei von deren zusammenstellung man NICHTS weiß außer das die beiden variablen die man vergleichen will in einer zeile sind...

mal guggen wer des hinbekommt...:)
mfg
 

Celvin

Mitglied
Das Problem ist mit deinen Angaben nicht zu lösen, außer du hast weitere Attribute, mit denen du bestimmen kannst, was ein Wert enthält. Natürlich kannst du einfach schauen, ob beide Werte in der Zeile enthalten sind, wenn dir das genügt. Nun frag ich dich mal, wie wird die Datei denn erstellt, dass die so unterschiedlich aufgebaut ist?
 

wutz1111

Grünschnabel
ok, es gibt gewisse regelmäßigkeiten, hätte mich bloß interesiert wie es auch ohne geht...

ich habe mir nun folgendes überlegt:
die regelmäßigkeit besteht daran das die zeile VOR der eigentlich gesuchten zeile immer den gleichen inhalt hat (allerdings gibts es von diesen mehrere...)
also such ich diese zeilen raus und will dann die NÄCHSTE zeile erneut in einer txt datei speichern, und nochmals vergleichen lassen...
also der quelltext sollte dann so aussehen:

Private Sub command1_click()


Dim Zeile As String
Dim nC As Integer, nD As Integer

nC = FreeFile
Open "c:/1.txt" For Input As #nC
Do Until EOF(nC)
Line Input #nC, Zeile
If Zeile = "abc" Then
Open "C:/2.txt" For Append As #22

'###und hier ist die stelle die ich nicht umsetzen kann###
Print #22, NÄCHSTE Zeile !!!

Close #22
End If
Loop
Close #nC
End Sub

ist sowas möglich??
mfg
 

Celvin

Mitglied
Tu mir doch mal bitte den Gefallen und verrate mir, wie so ein kompletter Abschnitt einer Datei aussieht, und vor allem, welches Programm diese Dateien erstellt...
 

wutz1111

Grünschnabel
also das soll ein ausschnitt aus einer(verschiedener) html datei(en) sein, welche unterschiedlich aussehen können, weshalb eine allgemeine form zu bevorzugen wäre

bei noch detailierteren angaben kannste dich ja mal unter meiner email adresse melden;)

schonmal thx
mfg
 

Celvin

Mitglied
Wobei:

"Der Benutzer hat angegeben, dass er/sie keine Emails durch dieses Board empfangen möchte."

ja durchaus rul3d, ehehe...
 

wutz1111

Grünschnabel
mein icq postfach geht zur zeit nicht deshalb weiß ich nicht ob du dich bei mir gemeldet hast, aber ich hab jetzt mal selbst ne (übergangs)lösung gefunden

folgender quelltext sucht die zeile vorvor der gesuchten zeile heraus und schreibt die eigentlich gesuchten erneut in eine txt datei

Private Sub command1_click()

Dim Zeile As String
Dim nC As Integer, nD As Integer

nC = FreeFile
Open "c:/1.txt" For Input As #nC
Do Until EOF(nC)

Line Input #nc, Zeile

GoTo 2:
1:
Line Input #nc, Zeile
Line Input #nc, Zeile
Open "C:/2.txt" For Append As #22
Print #22, Zeile
Close #22

2:
If Zeile = "abc" Then
GoTo 1:

End If
Loop
Close #nc

End Sub

jetzt nur noch eine frage: wie kann ich die erstellten txt wieder löschen (oder zumindest den inhalt der dateien)?

thx für dein bemühen celvin
mfg