opslaan in een programma

dries

Ik heb iets simpel gemaakt, met een aantal tekstvakken, nu is het de bedoeling dat er in de tekstvakken iets ingevuld word, en na het drukken op een knop, alle ingevulde waardes worden opgeslagen.

de volgende keer dat het programma start moet er dus nog hetzelfde in de tekstvakken staan, als wat er de vorige keer is ingevuld.

greet
[Nob]

In welke taal?

En antwoord is voor bijna elke taal hetzelfde denk ik:

gewoon opslaan in een file, en uitlezen als je het programma start.

greetz,

Nob
airzimmy
Erelid
Erelid
Berichten: 1047
Lid geworden op: 19 sep 2002, 14:01
Contacteer:

als het voor windows is en het zijn bijvoorbeeld settings kan je de registry gebruiken
Gebruikersavatar
Snakehit
Elite Poster
Elite Poster
Berichten: 806
Lid geworden op: 05 mei 2004, 15:37
Locatie: Izegem, Belgie
Contacteer:

je gaat toch geen registry gebruiken voor dit zeker?
gewoon tekstfile met
VB:
Naam: Dirk
Adres: hier endaar
Stad: Gent

voorbeeld en dan lees je gewoon alles en doe je een search tot je naam tegenkomt en voeg je dit in het tekstvak
en dan doe je Readline en vult het in

Is toch niet moeilijk, ik zou het register hierbij zeker niet gebruiken
Gebruikersavatar
SIR
Pro Member
Pro Member
Berichten: 321
Lid geworden op: 27 nov 2003, 14:47
Locatie: Borsbeek, A'pen

Is het de bedoeling van een database in te vullen via een form?????
dries

Ik heb het gemaakt in visual basic 6.0. (sorry vergeten te meleden)

En het is inderdaad iets gelijksaardigs als dat met die acressen, en dan moet het opgeslagen worden, zodat ze er volgende keer nog in staan.

greet
Gebruikersavatar
meon
Administrator
Administrator
Berichten: 16609
Lid geworden op: 18 feb 2003, 22:02
Twitter: meon
Locatie: Bree
Uitgedeelde bedankjes: 564 keer
Bedankt: 759 keer
Contacteer:

Heel toevallig (of net niet): http://www.userbase.be/forum/viewtopic.php?t=4130

Vrijwel dezelfde vraag ...
Gebruikersavatar
Snakehit
Elite Poster
Elite Poster
Berichten: 806
Lid geworden op: 05 mei 2004, 15:37
Locatie: Izegem, Belgie
Contacteer:

Neen meon,

Dries wil dat hij zijn tekstvelden kan opslaan en bij opnieuw starten terug invullen. Een soort van Settings Systeem. Dat hij direct alle gegevens invult die haalt hij uit een tekstbestand.
Gebruikersavatar
SIR
Pro Member
Pro Member
Berichten: 321
Lid geworden op: 27 nov 2003, 14:47
Locatie: Borsbeek, A'pen

Gaat het over 1 set gegevens, of dezelfde data maar dan van verschillende personen?
DiViNO
Plus Member
Plus Member
Berichten: 129
Lid geworden op: 23 dec 2002, 18:23

XML is wel ez (om te schrijven en te lezen) om setting op te slaan ;)

Als je wat meer info geeft kan 'k een klasse maken in c# of vb .NET weliswaar...(waarom maakt men nog zoveel gebruik van die crappy VB6 :???: :!: )
Stino
Plus Member
Plus Member
Berichten: 163
Lid geworden op: 03 jan 2004, 13:49

Code: Selecteer alles

Public Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long
Public Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
Public Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long
Public Const FileName = "blabla.ini"

Function GetIni(strSectionHeader As String, strVariableName As String, strFileName As String) As String
Dim strReturn As String
strReturn = String(255, Chr(0))
GetIni = Left(strReturn, GetPrivateProfileString(strSectionHeader, ByVal strVariableName, "", strReturn, Len(strReturn), strFileName))
End Function

Function WriteIni(strSectionHeader As String, strVariableName As String, strValue As String, strFileName As String) As Integer
WriteIni = WritePrivateProfileString(strSectionHeader, strVariableName, strValue, strFileName)
End Function

Gemakkelijk om te gebruiken, en alles wordt gestructureerd opgeslagen, perfect voor settings indien je geen gebruik wil maken van het register....

DiViNO schreef:Als je wat meer info geeft kan 'k een klasse maken in c# of vb .NET weliswaar...(waarom maakt men nog zoveel gebruik van die crappy VB6 :???: :!: )

Omdat VB6 gemakkelijk is....
wem
Premium Member
Premium Member
Berichten: 666
Lid geworden op: 24 mei 2004, 14:48

Stino schreef:
DiViNO schreef:Als je wat meer info geeft kan 'k een klasse maken in c# of vb .NET weliswaar...(waarom maakt men nog zoveel gebruik van die crappy VB6 :???: :!: )

Omdat VB6 gemakkelijk is....


en vele overzichtelijker ...
dries

Hey

inderdaad stino, visual basic is gewoon veel simpeler, en bovendien zeer handig als je zoals mij niks in de richting van informatica studeert, maar wel enkele simpele programa's wilt maken.

der is enkel één probleem, ik kan niet goed met visual basic werken, en als ik je code kopier, weet ik niet wat ik ermee moet doen, als ik het programma nu wil testen krijg ik de volgende foutmelding.

compile error:

Constants, fixed-length strings, arrays, user-defined types and declare statements not allowed as public members of object modules.


de vierde regel: Public Const FileName = "blabla.ini" staat in het rood aangeduid?

toch al bedankt.
wem
Premium Member
Premium Member
Berichten: 666
Lid geworden op: 24 mei 2004, 14:48

Dries:
je probeert dus een programma te maken zonder te begrijpen wat je programma exact doet???? (als je de code kopieert en verder niet weet wat ermee te doen, is dat mijn conclusie)

Ik raad je aan dan eerst wat opzoekingswerk te doen, en tuturials te lezen enzo, ander zal je niet veel programma's kunnen maken vrees ik...

en ik denk dat de twee posts boven die van jou gaan over het verschil tussen VB.Net en VB6, en niet tussen het verschil in programmeertalen op zich. (want persoonlijk vind ik VB onhandig, maar toch liever de 6 dan de .NET)
Gebruikersavatar
Snakehit
Elite Poster
Elite Poster
Berichten: 806
Lid geworden op: 05 mei 2004, 15:37
Locatie: Izegem, Belgie
Contacteer:

Geef mij maar de .NET
Ben net laureaat geworden in de avondschool
VB.NET 4de Niveau :wink: :wink:
Stino
Plus Member
Plus Member
Berichten: 163
Lid geworden op: 03 jan 2004, 13:49

dries schreef:Constants, fixed-length strings, arrays, user-defined types and declare statements not allowed as public members of object modules.
de vierde regel: Public Const FileName = "blabla.ini" staat in het rood aangeduid?
Public constants moeten in een module, gemakkelijk op te lossen ...maar inderdaad:
wem schreef:Ik raad je aan dan eerst wat opzoekingswerk te doen, en tuturials te lezen enzo, ander zal je niet veel programma's kunnen maken vrees ik...
www.planetsourcecode.com is een hele goede site daarvoor, met veel beginners tutorials....

@ Snakehit: Stoer, zo'n sig, ....wil ik ook wel, kzal der nog 'even' voor moeten werken vrees ik... :wink:
DiViNO
Plus Member
Plus Member
Berichten: 129
Lid geworden op: 23 dec 2002, 18:23

Geef mij maar C#.NET :twisted:
dries

ik heb twee dingskes te zeggen:

1) stino bedankt voor de hulp, daar dient het forum voor geloof ik??? ik zal wel proberen of ik eruit geraak. der zoude er meer van u moeten zijn.

2) wem ik gaan heel eerlijk zijn, ik vind u een janet. ik stel een vraag, juist omdat ik nie veel ken van vb6 laat staan vb.net. daarom vraag ik het ook hier. (duh)
Ik weet dat ik niet met vb kan werken en ik heb gezocht, en ge moogt drie keer raden: kwam ik toch wel nie hier terecht zeker
:eek:
als een forum gemaakt is om mensen te helpe, dan is het niet de bedoeling om ze te helpen eraan te denken dat ze niet met vb kunnen werken.
DiViNO
Plus Member
Plus Member
Berichten: 129
Lid geworden op: 23 dec 2002, 18:23

hmm janet das wel "below the belt".

Wat die jongen gewoon wil duidelijk maken is dat ge eerst een basis OOP kunt bezien eer ge begint.
Ge gaat toch ook ni rally rijden als ge geen basis autorijden kent he ;)

Keep it nice ;)
Gebruikersavatar
Snakehit
Elite Poster
Elite Poster
Berichten: 806
Lid geworden op: 05 mei 2004, 15:37
Locatie: Izegem, Belgie
Contacteer:

begin eerste met simpele dingen
zorg ervoor dat je tekstvakskes al kunt aanspreken enzo
en dat je dan later goed kan werken met die functie, zo heb ik het ook moeten leren. Als je geen goeie basis hebt zal je niet ver geraken om verder te programmeren. Als je bv later wilt overgaan naar C++ zal je toch wel VB goed onder de knie moeten hebben. C# staat bijna parallel met Java, dus als je Java Kent is dat al een groot pluspunt. Indien je nog verdere vragen hebt mag je me altijd contacteren. 8)
Gebruikersavatar
PowerSoft
Premium Member
Premium Member
Berichten: 589
Lid geworden op: 30 maa 2004, 20:33
Uitgedeelde bedankjes: 6 keer
Bedankt: 1 keer

DiViNO schreef:hmm janet das wel "below the belt".

Wat die jongen gewoon wil duidelijk maken is dat ge eerst een basis OOP kunt bezien eer ge begint.
Ge gaat toch ook ni rally rijden als ge geen basis autorijden kent he ;)

Keep it nice ;)


vb 6 is niet OOP (daarom dat het zo 'eenvoudig' is)
pas vanaf .NET werd VB(.NET dus) redelijk Object Oriënted
Gebruikersavatar
Snakehit
Elite Poster
Elite Poster
Berichten: 806
Lid geworden op: 05 mei 2004, 15:37
Locatie: Izegem, Belgie
Contacteer:

is te zien wat je bedoelt met object oriented programming hé, als je gaat verdiepen in classes en collections kan je het echt goed verder met .NET maar als je echt wilt zware apps schrijven kies je toch maar voor C++
Sike
Starter
Starter
Berichten: 13
Lid geworden op: 27 okt 2003, 16:17

om een paar waardes op te slaan zou ik die opslaan in een xml file en niet in een text file, dan zit er tenminste ook ngo structuur in je opgeslane data!

Greetz,
me
Spock
Elite Poster
Elite Poster
Berichten: 1591
Lid geworden op: 20 feb 2004, 11:48
Locatie: St-Truiden, Brussel, Utrecht en Capetown
Contacteer:

Sike schreef:me


Me????

No! YOU, no? :wink:
dries

Ik heb toch al gezegt da ik helemaal nie studeer om te leren programeren,
ik kan gewoon een klein bitje met vb6 werken, daar blijft het bij
en ik wil nen enkele keer een programmake schrijven,
ik zen nie van plan om elke week iets te maken.
maar ik vind dees forum precies heel onvriendelijk. :?

Want van alles wat er nu gezegt is snap ik niks meer van, en da is voor mij ook nie nodig. ik zou gewoon men programmake willen maken.
wem
Premium Member
Premium Member
Berichten: 666
Lid geworden op: 24 mei 2004, 14:48

dries schreef:Ik heb toch al gezegt da ik helemaal nie studeer om te leren programeren,
ik kan gewoon een klein bitje met vb6 werken, daar blijft het bij
en ik wil nen enkele keer een programmake schrijven,
ik zen nie van plan om elke week iets te maken.
maar ik vind dees forum precies heel onvriendelijk. :?

Want van alles wat er nu gezegt is snap ik niks meer van, en da is voor mij ook nie nodig. ik zou gewoon men programmake willen maken.


't is ni m'n bedoeling onvriendelijk zijn (of om de janet uit te hangen zoals ge beweert), maar als ge wilt programmeren, moet ge het leren.

Of ge dit nu leuk vind of niet. En als ge is eenmalig een programma wilt hebben, kunt ge ofwel het internet afzoeken naar een bestaand programa dat doet wat ge wilt, vrage aan iemand die programma's kan maken om het te doen, of de moeite nemen om te leren programmeren. En als ge een aantal tutorials hebt gelezen en begrepen en nog met vragen zit, zijn er dit soort fora om hierop te antwoorden, maar niet om u te leren programmeren...
dries

Da bedoel ik juist, ik kan een beetje programeren, en ik heb een vraag die ik hier heb gesteld (en nog altijd geen degelijk antwoord, want da van stino blijkt ook nie te werken bij mij)

ik heb eigenlijk men programma af, ik moet het alleen nog kunnen opslaan, hiermee bedoel ik, dat de ingevoerde waardes in tekstvakken moeten worden opgeslagen.

das alles.
wem
Premium Member
Premium Member
Berichten: 666
Lid geworden op: 24 mei 2004, 14:48

dan kan je als volgt te werk gaan:

open invoerbestand

voor elk veld:
- slaag tekst van veld op
- slaag delimiter op (bv. een \n of een teken dat je niet in je tekst-vak gebruikt)

sluit invoerbestand



Als je dan de informatie er trug uit wilt halen:

Open bestand
Lees invoerbestand volledig in in string
Deel die string adh delimiter in stukke in zodat ge nen array krijgt van u velde
en dan kunt ge elk veldje de waarde van de opeenvolgende waarde van array geve en dan hebt ge u veldjes trug ingevuld.
Sluit bestand.


Er bestaan waarschijnlijk wel betere methodes, maar dit lijkt me een enorm eenvoudige voor te begrijpe en te implementere.

Normaal gezien kunt ge voor elk specifiek deel wel iets vinde online, bv. in Google programmeertaal (VB6, VB.NET ofzo) en hetgene wa ge wilt doen invulle en ge zou toch iets degelijk moete vinde

en als ge probleme hebt me een van deze specifieke dinge, kunde hier nog altij een gerichte vraag stelle

'k hoop da da u probleem al wa oplost? ;-)
tinneke

Stino schreef:

Code: Selecteer alles

Public Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long
Public Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
Public Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long
Public Const FileName = "blabla.ini"

Function GetIni(strSectionHeader As String, strVariableName As String, strFileName As String) As String
Dim strReturn As String
strReturn = String(255, Chr(0))
GetIni = Left(strReturn, GetPrivateProfileString(strSectionHeader, ByVal strVariableName, "", strReturn, Len(strReturn), strFileName))
End Function

Function WriteIni(strSectionHeader As String, strVariableName As String, strValue As String, strFileName As String) As Integer
WriteIni = WritePrivateProfileString(strSectionHeader, strVariableName, strValue, strFileName)
End Function

Gemakkelijk om te gebruiken, en alles wordt gestructureerd opgeslagen, perfect voor settings indien je geen gebruik wil maken van het register....

DiViNO schreef:Als je wat meer info geeft kan 'k een klasse maken in c# of vb .NET weliswaar...(waarom maakt men nog zoveel gebruik van die crappy VB6 :???: :!: )

Omdat VB6 gemakkelijk is....


zeg stino, kan je hier mss wat meer uitleg aan geven, hoe hij het moet gebruiken ofzo, mss is zijn probleem dan opgelost.

en een beetje vriendelijker zou geen kwaad kunnen hoor... (dries)

ik kan me trouwens nog altijd niet aanmelden bij dit forum.

groetjes tinne (computer eindelijk terug in topvorm)
xxx :banana: :-(
Stino
Plus Member
Plus Member
Berichten: 163
Lid geworden op: 03 jan 2004, 13:49

Hoe je dat moet gebruiken spreekt eigelijk voor zich hoor:
WriteIni <sectie>, <variabele>, <waarde>, <file>
WriteIni <sectie2>, <variabele2>, <waarde2>, <file>

Dat resulteert in <file>:
[<sectie>]
<variabele>=<waarde>
[<sectie2>]
<variabele2>=<waarde2>

Terug inlezen is ongeveer hetzelfde:
<waarde>=GetIni(<sectie>, <variabele>, <file>)
<waarde2>=GetIni(<sectie2>, <variabele2>, <file>)


Hope it helps ;-)
dries

Het zou inderdaad kunnen helpen als ik er wat meer uitleg bij krijg, maar van wat je nu heb geantwoord snap ik al helemaal niks meer.
toch bedankt tinneke en stino,

sorry voor men inderdaad overdreven gedrag.
Gebruikersavatar
meon
Administrator
Administrator
Berichten: 16609
Lid geworden op: 18 feb 2003, 22:02
Twitter: meon
Locatie: Bree
Uitgedeelde bedankjes: 564 keer
Bedankt: 759 keer
Contacteer:

tinneke schreef:ik kan me trouwens nog altijd niet aanmelden bij dit forum. groetjes tinne (computer eindelijk terug in topvorm)
xxx :banana: :-(

Mail eens de gebruikersnaam die je gebruikt bij het inloggen naar [email protected] ? Heb je trouwens mijn mail gehad en die van Sensei Zeon?
Gebruikersavatar
meon
Administrator
Administrator
Berichten: 16609
Lid geworden op: 18 feb 2003, 22:02
Twitter: meon
Locatie: Bree
Uitgedeelde bedankjes: 564 keer
Bedankt: 759 keer
Contacteer:

dries schreef:Het zou inderdaad kunnen helpen als ik er wat meer uitleg bij krijg, maar van wat je nu heb geantwoord snap ik al helemaal niks meer.
toch bedankt tinneke en stino,

sorry voor men inderdaad overdreven gedrag.

Zelfs ik kan aan Stino's uitleg uit, en ik ken niets van programmeren in VB :)
Hij gebruikt eerst een functie of zoiets, zijnde WriteIni met een aantal parameters.
Die functie maakt een tekstbestand aan met een aantal variabelen met hun inhoud.
En daarna gebuikt hij GetIni om die waarden terug in te lezen.
Lijkt me erg simpel, misschien ook eens met VB beginnen ;)

Als je probleem nu is "waar moet ik deze dingen ingeven en hoe roep ik ze op", dan raad ik je aan om ergens een boekje "Basiscursus Visual Basic" te halen (bijvoorbeeld in de bieb) om toch een beetje notie te hebben van de werking ...
khsw
Elite Poster
Elite Poster
Berichten: 1158
Lid geworden op: 03 maa 2004, 09:04
Uitgedeelde bedankjes: 18 keer
Bedankt: 16 keer

Ik heb voor jou ff een voorbeeldje gemaakt met 5 textboxen en een button. Met deze voorbeelden zou je er toch moeten geraken. Voorbeeld 1 is met GetSetting en SaveSetting (registry).

In de form zet je volgende code (best wel de namen wijzigen naar de namen van jouw controls):

Code: Selecteer alles

Private Const strAppName = "MyApp"
Private Const strSection = "Values"

Private Sub Command1_Click()
    SaveSetting strAppName, strSection, "Text1", Text1.Text
    SaveSetting strAppName, strSection, "Text2", Text2.Text
    SaveSetting strAppName, strSection, "Text3", Text3.Text
    SaveSetting strAppName, strSection, "Text4", Text4.Text
    SaveSetting strAppName, strSection, "Text5", Text5.Text
End Sub


Private Sub Form_Load()
    Text1.Text = GetSetting(strAppName, strSection, "Text1", "")
    Text2.Text = GetSetting(strAppName, strSection, "Text2", "")
    Text3.Text = GetSetting(strAppName, strSection, "Text3", "")
    Text4.Text = GetSetting(strAppName, strSection, "Text4", "")
    Text5.Text = GetSetting(strAppName, strSection, "Text5", "")
End Sub


Wens je de code van Stino te gebruiken, dan voeg je een module toe aan jouw project en plak je zijn code in deze module.

Daarna voeg je volgende code toe aan jouw form (ook hier nog de namen van de textboxen aanpassen):

Code: Selecteer alles

Private Const strFileName = "MyApp.ini"
Private Const strSection = "Values"

Private Sub Command1_Click()
    WriteIni strSection, "Text1", Text1.Text, strFileName
    WriteIni strSection, "Text2", Text2.Text, strFileName
    WriteIni strSection, "Text3", Text3.Text, strFileName
    WriteIni strSection, "Text4", Text4.Text, strFileName
    WriteIni strSection, "Text5", Text5.Text, strFileName
End Sub


Private Sub Form_Load()
    Text1.Text = GetIni(strSection, "Text1", strFileName)
    Text2.Text = GetIni(strSection, "Text2", strFileName)
    Text3.Text = GetIni(strSection, "Text3", strFileName)
    Text4.Text = GetIni(strSection, "Text4", strFileName)
    Text5.Text = GetIni(strSection, "Text5", strFileName)
End Sub
dries

bedankt khsw: het werkt nu perfect.
ik heb wel nog een vraagje, waar of hoe wordt de tekst opgeslagen als ik stino zen manier gebruik, en waar of hoe als ik jouw manier gebruik,

het maakt me niet veel uit, maar ik wil het gewoon weten.

heel hard bedankt.
Gebruikersavatar
meon
Administrator
Administrator
Berichten: 16609
Lid geworden op: 18 feb 2003, 22:02
Twitter: meon
Locatie: Bree
Uitgedeelde bedankjes: 564 keer
Bedankt: 759 keer
Contacteer:

bij dat van Stino > de bestandsnaam die je opgeeft
khsw > in het register (maw, afhankelijk van de gebruiker die ingelogd is)
dries

kan je ook in andere bestands formaten opslaan dan in .ini

en welk deel van de code bepaald waar in het register er word opgeslagen.

bedankt
Gebruikersavatar
foxxy girl
Pro Member
Pro Member
Berichten: 322
Lid geworden op: 05 jun 2004, 20:59
Locatie: geel

Voila se, als er een vrouw zich eens mee moeit is het direct opgelost.

ik zen echt superblij da ik me kan aanmelden.

Dees is mijn eerste berichtje dat ik plaats sinds ik mij kan aanmelden.

xxx meon xxx is nen schat.

groetjes tinne
xxx :banana:
groetjes foxxy
:banana: :kiss: :kiss: :kiss: :banana:
Gebruikersavatar
meon
Administrator
Administrator
Berichten: 16609
Lid geworden op: 18 feb 2003, 22:02
Twitter: meon
Locatie: Bree
Uitgedeelde bedankjes: 564 keer
Bedankt: 759 keer
Contacteer:

tinne schreef:xxx meon xxx is nen schat.

groetjes tinne
xxx :banana:
_________________
WOEHOE eindelijk kan ik me aanmelden, MEON GIJ ZIJT NEN SCHAT!

Wat een eer :oops:
;)
Gebruikersavatar
foxxy girl
Pro Member
Pro Member
Berichten: 322
Lid geworden op: 05 jun 2004, 20:59
Locatie: geel

hehe, maar wel een terechte eer.

ik heb wel de indruk dat ik nog nie alle emoticons kan gebruiken. ik vind dus nergens die kusjes gevende emoticon, wat is er de "tekst" voor om ze de krijgen?

groetjes tinne
XXX :banana:
groetjes foxxy
:banana: :kiss: :kiss: :kiss: :banana:
Plaats reactie

Terug naar “Development”