Split bepaald deel bij gelezen txt file

Status
Niet open voor verdere reacties.

TheJjokerR

Gebruiker
Lid geworden
25 apr 2008
Berichten
104
Ik heb zoiets:
Code:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim Dir As System.IO.DirectoryInfo = New System.IO.DirectoryInfo(TextBox1.Text)

        For Each File As System.IO.FileInfo In Dir.GetFiles
            TextBox3.Text = TextBox3.Text + "Opened File " + File.Name + " (" + File.DirectoryName + ")"
            TextBox3.Text = TextBox3.Text + vbNewLine + File.Name + " (Changed name to:" + //Hier gaat het fout
        Next
    End Sub

Op die plek wil ik een een file(.lua(gelijk aan .txt)) de regel lezen die dit bevat: "Name: " en dan wil ik doorgaan op die regel tot de "."

Bijvoorbeeld zou van dit:
Code:
--[[
Name: "init.lua".
Credits: "name"
--]]
Dit uitkomen in het programma:
(Changed name to: init.lua)
 
Je kunt googlen op de functie Split.
Bijvoorbeeld:
Code:
        Dim hStr As String
        Dim MyStrArray() As String

        hStr = "Name : init.lua"
        MyStrArray = Split(hStr, ":")
        MsgBox("Changed name to : " & MyStrArray(1)) 'geeft "Changed name to : init.lua" terug
 
Jah, dat kan ik ook verzinnen, maar ik weet de waarde na "Name: " niet, ik kan dus niet die code gebruiken :rolleyes:
 
Code:
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'simulatie van gelezen textregel
        Dim a As String = "Name: " & Chr(34) & "init.lua" & Chr(34) & "."

        'zoek begin (Name: ") en eind (".) posities in de string. 
        Dim BeginPos As Byte = Len("Name: " & Chr(34)) 'Lengte is 7 characters, dus daarna begint de filename.
        Dim EndPos As Byte = a.IndexOf(Chr(34) & ".") 'startpositie is 15 (".) 

        'De substring functie kan een string pakken uit een andere string.
        'Maar deze heeft eerst een startpositie nodig (BeginPos)
        'Daarna heeft hij een lengte van de te pakken string nodig. 
        'In de EndPos eindigd deze bij positie 15. Dus de lengte van de te pakken string is : EndPos min BeginPos
        Dim Bestandsnaam As String = (a.Substring(BeginPos, (EndPos - BeginPos)))

    End Sub
 
Ok, ik snap niet helemaal wat je daar doet maar mischien moet ik het doel uitleggen:

Ik heb een folder met files, dat zijn files die in een spel zijn gedownload, nu hebben die allemaal namen bestaand uit cijfers(bijv: 012031023.dua). .dua is hetzelfde als .lua en zijn beide gewoon textbestanden die je met wordpad kan openen.
Nu staat er in sommige bestanden de naam van het bestand zoals het was voordat het veranderde in die cijfers, wat ik wil doen is dus die naam krijgen uit dat bestand.
Hoe lang de naam is weet ik niet, maar ik weet wel dat het op de tweede regel is na: "Name: ", ik weet ook dat het stopt bij de eerst volgende ".".
Uit die informatie wil ik dan het bestand dat hij zojuist heeft gescanned kopieren naar een output folder met een nieuwe naam voor het bestand.

Ik weet dat ik erg veel vraag maar ik kan er zelf gewoon niet uitkomen.:confused:
 
De code van Pizara is goed, hoor. Wat hij heeft gedaan is alleen even voor het gemak niet een stuk script om het bestand in te lezen genomen, maar alleen de regel.

Wat je dus zelf nog moet verzinnen is zoiets:
1. open het bestand
2. zet bestand-string in variabele
3. zoek ik de variabele naar 'Name:' en onthoud de regel
4. gebruik de code van Pizara op die regel.​


:thumb:
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan