Gebruik van text files

Status
Niet open voor verdere reacties.

TimeToTry

Gebruiker
Lid geworden
30 mrt 2007
Berichten
16
Hallo,

Ik heb een formulier gemaakt met allerlei checkboxen er op. Wanneer deze is aangevinkt komt de text in een Word bestand te staan. Nou zou ik graag dat de text die erachter zit in een .txt bestand willen zetten zodat deze text eenvoudig kan worden aangepast. Nou zou ik graag willen weten hoe ik een .txt file kan openen in een textbox zodat ik de text kan bewerken in mijn formulier. Zou iemand mij dit kunnen vertellen?

Als er meer informatie nodig is, zal ik dat geven. Bedankt voor het lezen van bericht.

Mvgr,
TimeToTry
 
Ik heb zelf zoiets als dit gebruikt
Code:
Dim sFile As String
Dim sInput As String
Dim lFNum As Long

'Open browse window om bestand te selecteren
NewFN = Application.GetOpenFilename(filefilter:="Text Files (*.txt), *.txt,All Files (*.*), *.*", _
Title:="Selecteer een bestand")
 
If NewFN = False Then
    'Your code if they pressed Cancel
    Exit Sub
Else
    'Your code if they select the text file to open
    lFNum = FreeFile
    sFile = NewFN
    
    'Open the file
    Open sFile For Input As lFNum
      
    'Loop through the file until the end
    Do While Not EOF(lFNum)
        Line Input #lFNum, sInput 'input the current line
           
        'Write to the textbox
        TextBox1 = sInput
    Loop

End If
Ik ben niet echt een VBA profesional dus welicht kan het veel korter en eenvoudiger, maar zo werkt het in ieder geval.
 
Dag TimeToTry,

Gebruik een Ini-file.

System.PrivateProfileString("pad", "Onthouden", "Variabele") = Waarde

Waarde = System.PrivateProfileString("pad", "Onthouden", "Variabele")

pad is bijvoorbeeld "C:\Mijn map\Bestanden\Beheer.ini"

Onder het kopje "Onthouden" komen dan al je variabelen te staan en zo kun je meer kopjes aanmaken.

Kijk maar eens in het bestand met kladblok

Gegroet,

Axel.
 
Axel even een vraag aan u.

Ik heb de aangegeven code gebruikt en krijg nu dit in mijn ini bestand te zien:

[Onthouden]
Variabele=

Elke keer als ik in mijn code de Variabele veranderd krijg ik die erbij te zien, bvb:
[Onthouden]
Variabele=
Variabele2=
Variabele888=

Kan ik dit ook zo maken dat ik de variabele alleen in het ini bestandje hoef aan te passen zodat deze de text dan laat zien in bvb een MessageBox?

Alvast Bedankt!

mvgr,
TimeToTry
 
Dag TimeToTry,

Elke keer dat je je variabele wegschrijft wordt de waarde achter het =-teken geplaatst en als je de waarde opvraagt wordt wat achter het =-teken staat toegekend.

Onder het kopje [Onthouden] (wat overigens van alles mag zijn, maar het liefst iets betekenisvol) kun je alle variabelen van je programma wegschrijven of ophalen. Ook hier geldt dat de naam vóór het =-teken betekenisvol dient te zijn. Ook kun je zoveel 'kopjes' aanmaken als je wilt, met weer eigen variabelen. Bijvoorbeeld de variabelen die bij een ander programma horen.

Stel je wilt de laatste stand van je combobox (waarin staat: Een, Twee, Drie, Vier) onthouden en de waarde is: Drie, dan zet je

System.PrivateProfileString("pad", "Combobox", "LaatsteWaarde") = Combobox.Text

Als je de volgende keer de combobox weer wilt zetten op hoe hij het laatst stond dan zet je

Combobox.Text = System.PrivateProfileString("pad", "Combobox", "LaatsteWaarde")

Gegroet,

Axel.
 
Laatst bewerkt:
Beste Axel,

Ik heb nu dit in mijn code staan:

System.PrivateProfileString("../../../../inleiding.ini", "CheckList", "Inleiding") = txtfileInleiding
System.PrivateProfileString("../../../../inleiding.ini", "CheckList", "Body") = txtfileInleiding

Deze variabele krijg ik netjes onder het kopje CheckList te zien:

[CheckList]
Inleiding=
Body=

Nou zou ik dus willen dat als ik in de .ini file de variabele verander, dus bvb:
[CheckList]
Inleiding=
Datum=

Deze dat weer geeft in mijn programma code. Dus dat dit:

System.PrivateProfileString("../../../../inleiding.ini", "CheckList", "Body") = txtfileInleiding

veranderd naar:

System.PrivateProfileString("../../../../inleiding.ini", "CheckList", "Datum") = txtfileInleiding

Is dat ook mogelijk of vraag ik nu te veel?

En hoe laat ik de variabele van de .ini file zien in een textbox?

Zou u dat ook een beetje eenvoudig kunnen uitleggen, ik ben namelijk niet zo'n ster in het programmeren van Visual Basic en moet nog een hoop leren...

Alvast weer bedankt!

mvgr,
TimeToTry
 
Dag Timetotry,

Het ini bestand doet zijn werk op de achtergrond. Je hoeftv daar niets in te veranderen of toe te voegen. Dat gaat van zelf. Het kan wel, maar dat is niet de bedoeling. Je bergt er een of meer waardes die je in je programma gebruikt in op of haalt ze er weer uit.

System.PrivateProfileString("../../../../inleiding.ini", "CheckList", "Datum") = txtfileInleiding

Betekent dat onder kopje Checklist de variabele Datum de waarde krijgt van wat er staat in txtfileInleiding (kennelijk een datum). Nou stel voor dat in die textbox staat: 5 december 2007.

Dan komt er in de ini file te staan:

[CheckList]
Datum=5 december 2007

Heb je deze datum weer nodig (bijvoorbeeld bij het opstarten van je programma) dan benoem je

txtfileInleiding=System.PrivateProfileString("../../../../inleiding.ini", "CheckList", "Datum")

in de textbox komt dan te staan 5 december 2007.

Kortom het ini file is een opbergdoos waar je iets in kunt stoppen en iets weer uit kan halen.

Gegroet,

Axel.
 
Dag Timetotry,

Het ini bestand doet zijn werk op de achtergrond. Je hoeftv daar niets in te veranderen of toe te voegen. Dat gaat van zelf. Het kan wel, maar dat is niet de bedoeling. Je bergt er een of meer waardes die je in je programma gebruikt in op of haalt ze er weer uit.

Beste Axel,

Dat is nou juist wat ik wil. Dat ik mijn variabelen alleen in de ini file hoef te veranderen.

Ik zal jouw voorstel uitproberen! Weer bedankt!

Mvgr,
TimeToTry
 
Dag TimeToTry,

Dat is toch erg omslachtig? Als je je variabelen in een programma maakt of wijzigt dan worden die veranderingen opgeslagen in het ini-bestand en niet later, want als het programma vastloopt ben je je gegevens kwijt.
Trouwens als je je variabelen apart wilt instellen wat doe je dan in je programma?

Gegroet,

Axel.
 
Laatst bewerkt:
Beste Axel,

Wat ik moet maken is een offerte. In deze offerte moet wel eens de tekst worden aangepast. Maar omdat niet iedereen die deze offerte gaat gebruiken kan programmeren in Visual Basics for Application moet deze tekst eenvoudig worden aangepast. Daarom leek het mij handig om de tekst uit een .txt (or een .ini) bestand te halen zodat wanneer de tekst moet worden aangepast dit alleen in het .txt (of .ini) bestand hoeft worden aangepast. Hierdoor hoeft de gebruiker van de offerte niet te programeren in Visual Basics for Applications maar alleen een .txt (of .ini) bestand wijzigen.

Misschien is het onmogelijk wat ik vraag maar ik hoop dat het wel een beetje duidelijker is.


Mvgr,
TimeToTry
 
Dag TimeToTry,

Dan kun je toch net zo goed een sjabloon maken en daar eventueel aanpassingen aan doen?

Gegroet,

Axel.
 
Beste Axel,

Ja, maar er moet met checkboxen gewerkt worden. Dus zeg maar als de checkbox is geselecteerd moet deze de text in het Word document weergeven. Als de checkbox niet geselecteerd is moet deze de text dus niet in het Word document weergeven.

Wat ik nu heb is als ik mijn sjabloon opent, opent er een UserFormulier die de lijst met checkboxen laat zien. Als er een checkbox is aangevinkt laat deze de tekst (die ik in de code heb aangegeven) in het Word document zien.

Maar ik wil dus dat de tekst niet in de programmeer code staat maar in een txt file zodat deze tekst eenvoudig is aan te passen.

Mvgr,
TimeToTry
 
Beste Axel,

Bedankt! Ik zal zeker even naar het document kijken!

Mvgr,
TimeToTry
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan