tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
6
ZUGRIFFE
1141
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Yoshi90 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
    ---------------------------------------------------------------------------------------------
     

  2. #2
    Avatar von dignsag
    dignsag dignsag ist offline Mitglied Brokat
    Registriert seit
    Nov 2004
    Ort
    Hirsau (BW)
    Beiträge
    261
    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!

  3. #3
    Yoshi90 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
     

  4. #4
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    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

  5. #5
    Yoshi90 Yoshi90 ist offline Grünschnabel
    Registriert seit
    Apr 2010
    Beiträge
    4
    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
     

  6. #6
    Avatar von dignsag
    dignsag dignsag ist offline Mitglied Brokat
    Registriert seit
    Nov 2004
    Ort
    Hirsau (BW)
    Beiträge
    261
    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!

  7. #7
    Yoshi90 Yoshi90 ist offline Grünschnabel
    Registriert seit
    Apr 2010
    Beiträge
    4
    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

  1. jar file zugriff auf dateien
    Von terravotion im Forum Java
    Antworten: 5
    Letzter Beitrag: 16.08.07, 13:27
  2. Antworten: 3
    Letzter Beitrag: 04.11.05, 23:01
  3. Zugriff auf Dateien im jar File
    Von illaX im Forum Java
    Antworten: 5
    Letzter Beitrag: 21.10.05, 10:12
  4. Zugriff auf Komponenten im Jar-File
    Von catarock im Forum Java
    Antworten: 9
    Letzter Beitrag: 06.06.05, 08:17
  5. File Zugriff
    Von Maxii im Forum .NET Archiv
    Antworten: 0
    Letzter Beitrag: 16.01.04, 17:52