ERLEDIGT
NEIN
NEIN
ANTWORTEN
6
6
ZUGRIFFE
1141
1141
EMPFEHLEN
-
06.04.10 10:12 #1Yoshi90 Tutorials.de Gastzugang
Guten Tag,
ich hoffe in diesem Forum kann mir weiter geholfen werden.
Zu Anfang muss ich direkt sagen, dass ich ein Anfänger bin was das programmieren angeht.
-> Situationsbeschreibung
--> Problematik
### Situationsbeschreibung ###
Es besteht eine .txt Datei (welche Data.txt in meinem Script genannt wurde(SourceFile)), diese enthält zwei Dateinamen z.B. test1.txt & test2.txt.
Auf diese beiden Datein soll ein Zugriff gestartet werden, und geprüft werden ob das zuvor eingegebene Suchwort bzw Buchstabe enthalten ist.
Sofern dies zutrifft, soll das Programm in der alten Datei das Suchwort bzw. den Buchstaben durch den zuvor eingegebenen Alternativ Text ersetzt werden.
Das Ziel ist es dann eine _result.txt Datei zu erstellen in der die veränderten Werte sowie die alten Werte enthalten sind.
Bsp: Suchwort: Hallo Alternativ Text: Spaß
test1.txt --> hallo test2.txt --> blablabla
blablahallobla hallo
halluuuu bla
Data_result.txt --> test1.txt
Spaß
blablaSpaßbla
halluuu
--> test2.txt
blablabla
Spaß
bla
Ich hoffe die Situationsbeschreibung war einigermaßen verständlich, sollten dennoch Fragen dies bezüglich auftreten werde ich natürlich versuchen es anders zu erläutern
### Problematik ###
Die Problematik besteht darin, die alten Files zu verändern und in EINER (_result.txt) datei wieder auszugeben.
Ich danke vielmals für die Hilfe.
Wünsche einen angenehmen Start in die neue Woche.
---------------------------------------------------------------------------------------------
'On error resume next
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0
Dim FileSystem, File, TS
Dim Sourcefile
SourceFile = "h:\Data.txt"
StringOld = Inputbox ("Welcher Text wird gesucht?")
StringNew = Inputbox ("Bitte den Alternativ-Text eingeben")
Set FileSystem = CreateObject("Scripting.FileSystemObject")
Set File = FileSystem.GetFile(SourceFile)
Set TS = File.OpenAsTextStream(ForReading, TristateUseDefault)
Do While TS.AtEndOfStream <> True
StrLine = TS.ReadLine
wscript.echo "Datei --> " & Strline
'Neues File schreiben & Name modulieren
Intposition = inStr(1,Strline,".",1)
BintPosition = inStr(5,Strline,8,1)
wscript.echo Len(Strline)
wscript.echo Intposition
pre = Left(Strline, Intposition-1)
Post = Right(Strline, Intposition-2)
StrDest = pre & "_Result" & post
wscript.echo StrDest
'SET NewStream = Filesystem.CreateTextFile (StrDest)
Set NewStream = Filesystem.CreateTextFile (StrDest,2,True)
IF Err.Number <> 0 THEN errBreak
'Erstellen eines TextStream womit in die Datei geschrieben werden kann
'Set fsodest= Filesystem.CreateTextFile("H:\" & StrDest,True,False)
'File öffnen
Set File = FileSystem.GetFile(StrLine)
Set Datei = File.OpenAsTextStream(ForReading, TristateUseDefault)
Do While Datei.AtEndOfStream <> True
StrDateiLine = Datei.ReadLine
Ausgabe = Ausgabe & StrDateiline & vbcrlf
'Zeile prüfen
Vergleich = instr(1, StrDateiline, StringOld,1)
if Vergleich > 0 Then
NewStream.WriteLine StringNew
Treffer = Treffer + 1
else
end if
Ausgabe = ""
Loop
Ausgabe = ""
'Wenn zutreffend dann File ändern
'Änderung in neuem File wegschreiben
Datei.Close
WScript.Echo "Anzahl der Treffer des Wortes " & "-" & StringOld & "-" & " : " & Treffer
Treffer = 0
Loop
TS.Close
---------------------------------------------------------------------------------------------
-
Hallo Yoshi90,
nette Situationsbeschreibung, das nenn ich mal Struktur.
Du hast Code gepostet, was ist damit? Funktioniert nicht? Fehler?
Für Visual Basic informier dich zu der Thematik am Besten mal über die Befehle:
Open File
Print
Print Line
Input
Das sind die Funktionen die ich normalerweise in VBA für dieses Problem verwende.
Du kannst auch konkrete Fragen dazu hier stellen. Dein Code sieht mir sehr stark nach .NET aus, da läuft das zwecks strikter Objektorientierung natürlich etwas anders ab.Der Weg ist das Ziel!
-
06.04.10 13:43 #3Yoshi90 Tutorials.de Gastzugang
Guten Tag dignsag,
hab schon mal vielen herzlichen Dank für deine schnelle Antwort.
Werde mich nun mal über die von dir genannten Befehle schlau machen.
Den Code habe ich gepostet, damit ihr / du eine evtl. eine bessere Vorstellung habt.
Habe versucht die Situation so leicht wie möglich zu beschreiben.
Um nochmal auf den Code zurück zu kommen, der funktioniert soweit.
Jedoch wie ich in der Problematik beschrieben habe fehlt mir nun das logische Denkvermögen
Momentan werden 2 _result.txt erstellt, daraus müsste ich eine machen und in dem alten File die Ersetzungen vornehmen.
------------------------------
*Input über die Befehle in mein Brain hol*
Mit freundlichen Grüßen
-
Kannst du bitte dein Code formatiert in [VB]mein Code[/VB] posten, so dass man das Ding auch lesen kann?
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
Klar, kein Problem.
Code vb:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
'On error resume next Const ForReading = 1, ForWriting = 2, ForAppending = 8 Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0 Dim FileSystem, File, TS Dim Sourcefile SourceFile = "h:\Data.txt" StringOld = Inputbox ("Welcher Text wird gesucht?") StringNew = Inputbox ("Bitte den Alternativ-Text eingeben") Set FileSystem = CreateObject("Scripting.FileSystemObject") Set File = FileSystem.GetFile(SourceFile) Set TS = File.OpenAsTextStream(ForReading, TristateUseDefault) Do While TS.AtEndOfStream <> True StrLine = TS.ReadLine wscript.echo "Datei --> " & Strline 'Neues File schreiben & Name modulieren Intposition = inStr(1,Strline,".",1) BintPosition = inStr(5,Strline,8,1) wscript.echo Len(Strline) wscript.echo Intposition pre = Left(Strline, Intposition-1) Post = Right(Strline, Intposition-2) StrDest = pre & "_Result" & post wscript.echo StrDest 'SET NewStream = Filesystem.CreateTextFile (StrDest) Set NewStream = Filesystem.CreateTextFile (StrDest,2,True) IF Err.Number <> 0 THEN errBreak 'Erstellen eines TextStream womit in die Datei geschrieben werden kann 'Set fsodest= Filesystem.CreateTextFile("H:\" & StrDest,True,False) 'File öffnen Set File = FileSystem.GetFile(StrLine) Set Datei = File.OpenAsTextStream(ForReading, TristateUseDefault) Do While Datei.AtEndOfStream <> True StrDateiLine = Datei.ReadLine Ausgabe = Ausgabe & StrDateiline & vbcrlf 'Zeile prüfen Vergleich = instr(1, StrDateiline, StringOld,1) if Vergleich > 0 Then NewStream.WriteLine StringNew Treffer = Treffer + 1 else end if Ausgabe = "" Loop Ausgabe = "" 'Wenn zutreffend dann File ändern 'Änderung in neuem File wegschreiben Datei.Close WScript.Echo "Anzahl der Treffer des Wortes " & "-" & StringOld & "-" & " : " & Treffer Treffer = 0 Loop TS.Close
-
Also:
1. Du öffnest die Erste Datei.
2. Du öffnest die result-Datei.
3. Du nimmst die erste Zeile und prüfst auf dein Suchwort und ersetzt es durch dein Alternativwort.
4. Du schreibst die erste Zeile in deine result-Datei.
5. Du nimmst die zweite Zeile und prüfst auf dein Suchwort und ersetzt es durch dein Alternativwort
6. usw.
7. Die erste Datei ist durch. Du schließt die erste Datei
8. Du öffnest die zweite Datei.
9. Du behältst die result-Datei offen.
10. Du nimmst die erste Zeile und prüfst auf dein Suchwort und ersetzt es durch dein Alternativwort
11. Du schreibst die erste Zeile in deine result-Datei.
12. usw.
13. Du schließt deine result-Datei.
Das ist so im groben die Logik. Für das suchen und ersetzen verwendest du meiner Ansicht nach schon genau die richtigen Befehle.Der Weg ist das Ziel!
-
Danke dir für die Gliederung.
Werde mich mal weiter dran geben dahinter zu steigen und es zu verstehen *grins*
Sollten sich im Laufe meiner "Weiterbildung" fortschritte getan haben werde ich mich natürlich melden.
Denke jedoch das weitere Fragen aufkommen werden
Ich danke dir jetzt schon mal sehr für deine Hilfe.
Ähnliche Themen
-
jar file zugriff auf dateien
Von terravotion im Forum JavaAntworten: 5Letzter Beitrag: 16.08.07, 13:27 -
Neue Zeile bei Ausgabe von file($datei)[5]
Von Azi im Forum PHPAntworten: 3Letzter Beitrag: 04.11.05, 23:01 -
Zugriff auf Dateien im jar File
Von illaX im Forum JavaAntworten: 5Letzter Beitrag: 21.10.05, 10:12 -
Zugriff auf Komponenten im Jar-File
Von catarock im Forum JavaAntworten: 9Letzter Beitrag: 06.06.05, 08:17 -
File Zugriff
Von Maxii im Forum .NET ArchivAntworten: 0Letzter Beitrag: 16.01.04, 17:52





Zitieren

Login





