Indlæse Information fra Fil (PLEASE HELP)

Tags:    visual-basic

Hej med jer. Hvordan indlæser jeg information fra fx en ini fil til mit program.

Fx hvis ini filen ser sådan her ud:

1=Hej
2=Med
3=Dig

Så skal programmet indlæse
1 til Label1.Caption, 2 til Label2.Caption, Og 3 til Label3.Caption

Eller sådan noget.

Hvordan gør jeg det?

Hilsen
Morten



7 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
Hej med jer. Hvordan indlæser jeg information fra fx en ini fil til mit program.

Fx hvis ini filen ser sådan her ud:

1=Hej
2=Med
3=Dig

Så skal programmet indlæse
1 til Label1.Caption, 2 til Label2.Caption, Og 3 til Label3.Caption


Først opretter du en .ini fil der ser sådanne ud:

[UserNames]
1=jesper
2=JeZer
3=loler

Kald den test.ini og læg den i samme mappe som dit program.

Nu opretter du et nyt modul (Projekt -> Add Module) og skriver følgende kode i det:
<pre>
Declare Function GetPrivateProfileString Lib _
"kernel32" Alias "GetPrivateProfileStringA" _
(ByVal lpApplicationname As String, ByVal _
lpKeyName As String, ByVal lpDefault As _
String, ByVal lpReturnedString As String, _
ByVal nSize As Long, ByVal lpFileName As _
String) As Long
</pre>

Derefter laver du tre labels på din form (label1, label2 og label3). Slet nu al kode i dit form vindue og skriv dette:
<pre>
Dim KeySection As String
Dim KeyKey As String
Dim KeyValue As String

Option Explicit

Private Sub loadini()

Dim lngResult As Long
Dim strFileName
Dim strResult As String * 50
strFileName = App.Path & "\\test.ini" 'Skift ud med din ini fil
lngResult = GetPrivateProfileString(KeySection, _
KeyKey, strFileName, strResult, Len(strResult), _
strFileName)
If lngResult = 0 Then
'En fejl er opstået
Call MsgBox("Der er opstået en fejl", vbExclamation)
Else
KeyValue = Trim(strResult)
End If

End Sub




Private Sub Form_Load()
KeySection = "UserNames"
KeyKey = "1"
loadini
Label1.Caption = KeyValue

KeySection = "UserNames"
KeyKey = "2"
loadini
Label2.Caption = KeyValue

KeySection = "UserNames"
KeyKey = "3"
loadini
Label3.Caption = KeyValue


End Sub
</pre>
Når du køre din aplikation burde du se de tre usernames på dine labels.



jeZper[Redigeret d. 01/09-02 09:56:14 af Jesper Mikkelsen]



User
Bruger #927 @ 01.09.02 01:28
Hej med jer. Hvordan indlæser jeg information fra fx en ini fil til mit program.

Fx hvis ini filen ser sådan her ud:

1=Hej
2=Med
3=Dig

Så skal programmet indlæse
1 til Label1.Caption, 2 til Label2.Caption, Og 3 til Label3.Caption

Eller sådan noget.

Hvordan gør jeg det?

Hilsen
Morten



Det vil jeg også meget gerne vide, der er 100 point fra min side til den der kommer med det bedste svar.

v. h
Zakria



Har lige zippet det hele. Du kan downloade den her:
http://ra2.hosted4free.dk/ini.zip

jeZper



Hej med jer. Hvordan indlæser jeg information fra fx en ini fil til mit program.

Fx hvis ini filen ser sådan her ud:

1=Hej
2=Med
3=Dig

Så skal programmet indlæse
1 til Label1.Caption, 2 til Label2.Caption, Og 3 til Label3.Caption

Eller sådan noget.

Hvordan gør jeg det?

Hilsen
Morten


//add INIFiles to uses section
Var
MyINI: TINIFile;
Begin
MyINI := TINIFIle.Create(ExtractFilePath(ParamStr(0))); //lav objektet

{hent strings}
Label1.Caption := MyINI.ReadString('sektionen', '1', '');
Label2.Caption := MyINI.ReadString('sektionen', '2', '');
Label3.Caption := MyINI.ReadString('sektionen', '3', '');

//free objektet
MyINI.Free;
End;

Du skal erstatte "sektionen" med navnet på den sektion 1,2 og 3 ligger i.





Mvh,

Thomas Nielsen



Bare ignorer min post - læste dette som Delphi forum'et :)

my bad :D

Mvh,

Thomas Nielsen



Jeg har skrevet dette her i Visual Basic .Net. Måske kan du gøre noget lignende. Det er dog første gang jeg koder i VB, så bær over med mig hvis jeg tager fuldstændigt fejl.

Jeg testede det på test.ini:

1=hej
2=med
3=dig

Følgende skal importeres:

System.IO
System.Text.RegularExpressions

Dette er konstruktoren til formen:

Public Sub New()
MyBase.New()

'This call is required by the Windows Form Designer.
InitializeComponent()

'Read contents of file
Dim myStreamReader As StreamReader
Dim myLine As String
Dim myInfo As Array

myStreamReader = New StreamReader("test.ini")
myLine = myStreamReader.ReadLine()

While Not IsNothing(myLine)
myInfo = Regex.Split(myLine, "=")
If myInfo(0) Like "1" Then
Me.Label1.Text = myInfo(1)
ElseIf myInfo(0) Like "2" Then
Me.Label2.Text = myInfo(1)
ElseIf myInfo(0) Like "3" Then
Me.Label3.Text = myInfo(1)
End If
myLine = myStreamReader.ReadLine()
End While
End Sub

Mvh.,

Jakob Justsen

Hej med jer. Hvordan indlæser jeg information fra fx en ini fil til mit program.

Fx hvis ini filen ser sådan her ud:

1=Hej
2=Med
3=Dig

Så skal programmet indlæse
1 til Label1.Caption, 2 til Label2.Caption, Og 3 til Label3.Caption

Eller sådan noget.

Hvordan gør jeg det?

Hilsen
Morten





Hej Jesper.

Din løsning har jeg brugt fordi jeg fandt den nemmest.
Du får de 100 points for et godt svar.
I andre kan måske få chancen en anden gang.

Med Venlig Hilsen
Morten Pedersen



t