| Eintrag in Liste + wieder abrufbar

Illuminatum

Grünschnabel
Hallo!
Ich bin neu und habe eine Frage.

Ich versuche mit z.Z. in VB (6), kenne eigentlich schon die Grundlagen und will mein erstes Programm schreiben.

Ich habe ein Spiel, bei dem man bei der Installation immer wieder einen (Online-)Key eingeben. Ich gebe also den Key mitsamt des Spietitels ein, klicke auf Speichern und der Key, untereordnet unter dem Reiter des Spiels, wird in dem Programm gespeichert.

Mit Drücken auf den Knopf "Name des Spiels" , wird wir dann ganz einfach der Key angezeigt.
Kann man sowas ganz einfach mit einer Liste machen? Oder muss man dazu sich mit Datenbanken beschäftigen?

Wenn ja, ich habe dazu das hier gefunden:
http://www.profsr.com/vb/vbless09.htm
Aber ist englisch -.-

Wie sieht zum Beispiel der Code aus?
Vielen Dank schonmal im Vorraus

MfG
Illuminatum
 
Du kannst in deinem Fall natürlich mit Kanone auf Spatzen schießen und eine Datenbank benutzen, einfacher wäre aber sicher für deinen Fall eine INI-Datei. In diesem Beispiel hier kannst du genau sehen, wie man in VB auf INI-Dateien zugreift.


Der Doc!
 
Hey, danke für deine Antwort!
Allerdings verstehe ich slebst das nicht :(

Man muss doch in VB immer bei den einzelnen Buttons (zb "cmd_ok") einen bestimmten Code eingeben.

Aber da is nun ein großer, einzelner?!

Bitte helfen :)

MfG
 
Du verwechselst den Begriff Code mit Prozedur. Das Click-Event z.b. eines CommandButtons ist eine einfache Prozedur, sie beinhaltet einen Teil des Codes des gesamten Projekts. Jedes Control hat eigene Prozeduren, der Code des obrigen Beispiel beinhaltet alle Prozeduren auf einmal.

Eine Prozedur fängt immer mit Sub (Public oder Private) an und endet mit End Sub. Wenn du dir den ganzen Code des oa Beispiels ansiehst, wirst du das erkennen.


Der Doc!
 
Hey!
Entschuldigung, dass ich erst so spät antworte, kam einiges dazwischen.

Also was genau muss ich jetzt mit dem Code machen? Ich hab da jetzt eine Formatvorlage, ziehe meine Textboxen und Labels, damit ich ja auch mit einem Knopfdrück etwas in die Ini einfügen kann.
Aber wo muss der Code hin? Da gibts ja OK buttons und wie schon gesagt, textboxen, labels o.ä.

Hilf mir nochmal bitte :=] Vielen Dank bis dato.

MfG

PS: Wenn zu evtl ICQ hast, kannst du mich ja auch adden? ICQ: 232718923
 
Ich hab zwar einen ICQ-Account, den aber nicht installiert. Verweiger mich momentan dem.

Zur Frage, wichtig sind erst mal die Deklarationen:
Visual Basic:
Private 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
        
Private 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

Private Declare Function WritePrivateProfileSection Lib _
        "kernel32" Alias "WritePrivateProfileSectionA" _
        (ByVal lpAppName As String, ByVal lpString As _
        String, ByVal lpFileName As String) As Long
        
Private Declare Function GetPrivateProfileSection Lib _
        "kernel32" Alias "GetPrivateProfileSectionA" _
        (ByVal lpAppName As String, ByVal lpReturnedString _
        As String, ByVal nSize As Long, ByVal lpFileName _
        As String) As Long
        
Dim File$
Am besten, du verwendest die Funktionen, die im Beispiel sind, gleich weiter:
Visual Basic:
Private Sub INISetValue(ByVal Path$, ByVal Sect$, ByVal Key$, _
                        ByVal Value$)
  Dim Result&
    'Wert schreiben
    Result = WritePrivateProfileString(Sect, Key, Value, Path)
End Sub

Private Function INIGetValue(ByVal Path$, ByVal Sect$, ByVal Key$) _
                             As String
  Dim Result&, Buffer$
    'Wert lesen
    Buffer = Space$(32)
    Result = GetPrivateProfileString(Sect, Key, vbNullString, _
                                     Buffer, Len(Buffer), Path)
    INIGetValue = Left$(Buffer, Result)
End Function

Private Sub INIDeleteKey(ByVal Path$, ByVal Sect$, ByVal Key$)
  Call WritePrivateProfileString(Sect, Key, 0&, Path)
End Sub
 
Private Sub INIDeleteSection(ByVal Path$, ByVal Sect$)
  Call WritePrivateProfileString(Sect, 0&, 0&, Path)
End Sub
Dann musst du nur noch irgendwo deine INI-Datei festlegen, die Form_Load-Prozedur würde sich anbieten:
Visual Basic:
Private Sub Form_Load()
    'Pfad der INI-Datei
    File = "C:\Test.ini"
End Sub

Schreiben tust du die INI-Werte dann so:
Visual Basic:
INISetValue File, Sektion, Schlüssel, Wert
und lesen so:
Visual Basic:
DeinWert = INIGetValue(File, Sektion, Schlüssel)
Die Lese- bzw. Schreibanweisung baust du dann halt in die Prozedur ein, wo du sie brauchst.


Der Doc!
 
Dorgh! :confused:
Ich verstehes einfach nicht... :(

Kann man denn nicht einfach eine Liste machen? Ich könnte auch Word bzw den Editor nehmen, aber das währe uncool^^

Aber vielen vielen Dank für deine große Bemühungen mir das zu erklären :)
Wirklich, vielen Dank.

Vielleicht kannst du mir ja auch noch mit der Liste helfen :suspekt:

MfG
Illuminatum
 
Du kannst natürlich auch eine einfache Textdatei nehmen, die Daten dort zeilenweise, durch Trennzeichen getrennt speichern und auch wieder auslesen, geht zwar ohne APIs aber mit etwas mehr Code. Zum Thema Daten lesen und schreiben finden sich genug Posts hier und ein schönes Tutorial.


Der Doc!
 
Also ich hab jetzt folgendes gemacht:

Code:
Private Sub cmd_speichern_Click()
lst_liste.AddItem txt_name.Text & vbTab & txt_key.Text
End Sub
Diesen Code hab ich jetzt für meinen Button "Speichern" geschrieben. Funtz auch super!

Alles hat seine Ordnung...aber:
  1. Wie kann ich diesen Eintrag bei evtl Fehleingabe wieder löschen? und
  2. Wenn ich das Programm nun ausführe, wird dann auch das eingegebene gespeichert?
Welchen Code muss ich für meinen Button "cmd_loeschen" schreiben?
Code:
Private Sub cmd_loeschen_Click()
?
End Sub

Mein "Programm" sieht nun folgendermaßen aus:
http://img145.imageshack.us/img145/3565/onlinecherif2bc2.jpg

Hoffe, mir kannst du oder vielleicht auch mal jmd anders nochmal helfen :p

MfG

PS: BlueDog, dieser Kommentar war deplatziert. :offtopic: ;)
 

Neue Beiträge

Zurück