Permalänk
Medlem

VB - Spara, öppna, skapa txtfil

Hallå.

Håller på med ett program här, har dock ett problem.
Vad ska man skriva för att skapa en txtfil?
När programmet startas så läser den in infon som finns i en txtfil och skriver ut detta i en listBox.
Det jag vill är att: Om det inte finns en txtFil så skall det komma upp en dialogruta där man skriver in filnamnet... Det är inga problem.. men hur skapar jag själva filen?

Hoppas ni förstår min fråga.

MVH//Moor

Visa signatur

Jag hatar att vara förkyld!

Permalänk
Medlem

Kolla på File system object. Den har allt skriva, läsa, skapa, kolla om filen finns och lägga till text i befintlig fil.

http://www.devguru.com/Technologies/vbscript/quickref/filesys...

Visa signatur
Permalänk
Medlem

Huh.. jag fattar nada där.
Det översta liknar ju mer php...och vad är VBscript?

Jag kör VB. 6

edit:
Fråga 2: Kollar upp en fil (todoStart.nfo) och vad som står i den..
sen skrivs detta ut i en variabel.
Denna variabel skall vara sökvägen till den fil som skall öppnas.
men innehållet i variablen blir "innehåll" altså en textsträng.
så. om det i todoStart.nfo står "Todo.txt"
så blir innehållet i strOpen "todo.txt"
Open App.Path + strOpen For Input As #1
den kan inte öppna strOpen för det är en sträng.

Private Sub Form_Load()

Open App.Path + "\todoStart.nfo" For Input As #2
Do Until EOF(2)
Line Input #2, strOpen
Loop
Close #2

Open App.Path + strOpen For Input As #1
Do Until EOF(1)
Line Input #1, strFilRad
lstTodo.AddItem (strFilRad)
Loop
Close #1

End Sub

Visa signatur

Jag hatar att vara förkyld!

Permalänk
Medlem

Ett exempel detta gör inte exakt vad du vill men du ser hur det funkar:

Private Sub Form_Load() Set objFSO = CreateObject("Scripting.FileSystemObject") if objFSO.FileExist("dinfil.txt") then 'Om filen finns gör detta Dim strOpen as String Set objFSOFile = objFSO.OpenTextFile("dinfil.txt", 1) 'Öppnar filen som skrivskyddad Do until objFSOFile.AtEndOfStream strOpen = objFSOFile.ReadLine Loop else 'Filen finns inte skapa en ny Dim strFilnamn as string strFilnamn = InputBox("Ange ett filnamn") if filnamn <> "" then objFSO.CreateTextFile strFilnamn, true end if end if set objFSOFile = nothing set objFSO = nothing End Sub

Visa signatur
Permalänk
Medlem

vad gör följande rader:

Set objFSO = CreateObject("Scripting.FileSystemObject")
set objFSOFile = nothing
set objFSO = nothing

edit: jag får inte din koad att fungera

Visa signatur

Jag hatar att vara förkyld!

Permalänk
Medlem

if filnamn <> "" then

ska val vara

if strFilnamn <> "" then

?

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Moor
vad gör följande rader:

Set objFSO = CreateObject("Scripting.FileSystemObject") ' Skapar ett FileSystemObject objekt, som används för att hantera filer.
set objFSOFile = nothing ' Tömmer objektet
set objFSO = nothing ' Tömmer objektet

edit: jag får inte din koad att fungera

Visa signatur

Visionär bakom Sveriges största publika spelsatsning. Säger jag mer så blir jag förmodligen bannad igen.

Ställ krav! Involvera er! Tänk utanför sandlådan.

Permalänk

Option Explicit Private Sub Form_Load() Dim strFilnamn As String, objFSO As Object, lFile As Long Set objFSO = CreateObject("Scripting.FileSystemObject") strFilnamn = InputBox("Ange ett filnamn", "Filnamn", "Min Fil.txt") lFile = FreeFile If objFSO.CheckFileExist(strFilnamn) Then Dim sLine As String Open strFilnamn For Input As #lFile Line Input #lFile, sLine lstMyList.AddItem sLine Close #lFile Else If strFilnamn <> "" Then Open strFilnamn For Output As #lFile Close #lFile End If End If Set objFSO = Nothing End Sub

Nu har jag iofs gjort om den lite, men jag får felet att File system objektet inte stödjer FileExist ??

Visa signatur

Om det inte finns något annat liv i universum är det sannerligen ett slöseri med utrymme

Permalänk
Medlem

Om du bara vill skapa en textfil kan du använda detta:

Open "1.txt" For Append As #1 Print #1, "hej" Close #1

Om du inte vill att det ska stå något i filen så tar du bara bort raden
Print #1, "hej"

Permalänk
Medlem

Hej o hå sorry fick dra snabb när jag postade inlägget så jag hann inte kolla koden.

Private Sub Form_Load() Set objFSO = CreateObject("Scripting.FileSystemObject") if objFSO.FileExists("dinfil.txt") then ' FileExists skulle det vara sorry ;) 'Om filen finns gör detta Dim strOpen as String Set objFSOFile = objFSO.OpenTextFile("dinfil.txt", 1) 'Öppnar filen som skrivskyddad Do until objFSOFile.AtEndOfStream strOpen = objFSOFile.ReadLine Loop else 'Filen finns inte skapa en ny Dim strFilnamn as string strFilnamn = InputBox("Ange ett filnamn") if strfilnamn <> "" then ' strFilnamn ska det vara objFSO.CreateTextFile strFilnamn, true end if end if set objFSOFile = nothing set objFSO = nothing End Sub

Set objFSO = CreateObject("Scripting.FileSystemObject") <- skapar objektet filesystemobject som finns med i Windows Scripting Host sedan version 2. Tror Windows Scripting Host 2 kom typ 99 så majoriteten av alla windowsanvändare ska ha den om de nångång kör windows update.

set objFSO = nothing <- Förstör objektet så det inte ligger kvar i minnet när vi inte behöver det längre

Visa signatur