VB 6.0

  • #1
A

Alexander16

Bekanntes Mitglied
Themenersteller
Dabei seit
26.08.2002
Beiträge
473
Reaktionspunkte
0
Also hier bin ich wieder mit einem neuen Problem. ;D

Ich habe ein Form mit zwei TextBoxen erstellt.
Es es ist auch eine test.dat Datei dabei.

In der test.dat steht:

[0]
Fehler0

[1]
Fehler1

usw.

Nun möchte ich das ich in der ersten TextBox eine Zahl eingebe(z.B. 1) dann soll der Text der darunter der Zahl [x] steht in der TextBox 2 angezeigt werden.

Beispiel:

Ich gebe 1 ein = in TextBox 2 wird Fehler1 geschrieben.
Ich gebe 0 ein = in TextBox 2 wird Fehler0 geschrieben.

Könnt ihr mir das erklären? (Bitte ganz einfach bin noch ein Anfänger in der Sprache VB)

Ich will diese Technik für andere Programme gerne weiterverwenden!!!!!

Vielen Danke schon mal!!!!!!!! ;D
 
  • #2
Also am einfachsten ist es, du machst das ueber eine ini-datei, die aber nicht unbedingt die endung ini haben brauch du kannst das weiter ueber .dat machen. Schnell was grundsaetzliches zum aufbau von .ini-dateien. Die haben die form

[Gruppe]
Eintrag=Wert

Deine Datei wuerde also folgendermaßen aussehen

[1]
Eintrag=Fehler1

[2]
Eintrag=Fehler2

ist also nicht viel, was du an deiner datei aendern musst. Der vorteil ist, du kannst dann auch vom programm eintraege anlegen lassen, und nicht nur auslesen. Da ich noch keine solche datei hatte hab ich mir einfach einen Button noch mit auf die form gemacht, der mit erstmal deine datei angelegt hat und die 2 eintraege reingeschrieben hat.....du wirst sehen, mit ini dateien ist vieles einfacher =)

...wenn du die funktionen dafuer in weiteren programmen einsetzen willst leg dir am besten eine moduldatei an in denen du die api deklaration und die beiden funktionen eingibst., dann kannst du das modus einfach in ein bestehendes oder enues projekt einbinden und hast die funktionen sofort praesent ;)

also, code sollte wieder ausreichend kommentiert sein, bei probs poste halt nochmal =)

Code:
Option Explicit

'deklaration der api
Private Declare Function WritePrivateProfileString Lib kernel32 Alias WritePrivateProfileStringA (ByVal lpApplicationname As String, ByVal lpKeyName As Any, ByVal lsString As Any, ByVal lplFilename As String) As Long
Private 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

'funktion zum seichern eines eintrags in der .ini-datei
Sub SaveINISetting(ByVal Filename As String, ByVal Key As String, ByVal Setting As String, ByVal Value As String)
  Call WritePrivateProfileString(Key, Setting, Value, Filename)
End Sub

'funktion zum auslesen eines eintrags aus der .ini-datei
Function GetINISetting(ByVal Filename As String, ByVal Key As String, ByVal Setting As String, ByVal Default As String) As String
  Dim Temp As String * 1024

  Call GetPrivateProfileString(Key, Setting, Default, Temp, Len(Temp), Filename)
  GetINISetting = Mid(Temp, 1, InStr(1, Temp, Chr(0)) - 1)
End Function

Private Sub Command1_Click() 'button um die zwei testeintraege anzulegen
  SaveINISetting C:\Datei.ini, 1, Eintrag, Fehler1
  SaveINISetting C:\Datei.ini, 2, Eintrag, Fehler2
  'wie die funktion benutzt wird wird glaube ich auch so deutlich
  
End Sub

Private Sub Form_Load()
  Text2.Locked = True
End Sub

Private Sub Text1_Change() 'wenn sich der wert in textbox eins aendert
  Dim error As String
  If Text1.Text <>  Then
    error = GetINISetting(C:\Datei.ini, Text1.Text, Eintrag, Kein wert eingetragen)
    'kein wert eingetragen is ein vorgabe-wert, wenn der eintrag nicht existiert, wird
    'dieser wert zurueckgegeben, z.b. wenn du 12 eingibst, denn der eintra [12] existiert
    'ja in unserer Datei.ini nicht.
    Text2.Text = error
  Else
    Text2.Text = 
  End If
End Sub
 
  • #3
Cool - Danke :eek:

Aber was muss ich an dem Code verändern, wenn die Datei schon schon existiert(im gleichen Ordner wie das Programm später) und der Erstell-Button nicht mehr benötigt mir?

Ich freu mich schon auf die Antwort!!!!!!!!!!! ;D
 
  • #4
Code:
Option Explicit 
 
'deklaration der api 
Private Declare Function WritePrivateProfileString Lib kernel32 Alias WritePrivateProfileStringA (ByVal lpApplicationname As String, ByVal lpKeyName As Any, ByVal lsString As Any, ByVal lplFilename As String) As Long 
Private 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 
 
'funktion zum auslesen eines eintrags aus der .ini-datei 
Function GetINISetting(ByVal Filename As String, ByVal Key As String, ByVal Setting As String, ByVal Default As String) As String 
  Dim Temp As String * 1024 
 
  Call GetPrivateProfileString(Key, Setting, Default, Temp, Len(Temp), Filename) 
  GetINISetting = Mid(Temp, 1, InStr(1, Temp, Chr(0)) - 1) 
End Function 

Private Sub Form_Load() 
    Text2.Locked = True 
End Sub 
 
Private Sub Text1_Change() 'wenn sich der wert in textbox eins aendert 
    Dim error As String 
    If Text1.Text <>  Then 
   error = GetINISetting(deinedatei.ini, Text1.Text, Eintrag, Kein wert eingetragen) 
   'kein wert eingetragen is ein vorgabe-wert, wenn der eintrag nicht existiert, wird 
   'dieser wert zurueckgegeben, z.b. wenn du 12 eingibst, denn der eintra [12] existiert 
   'ja in unserer Datei.ini nicht. 
   Text2.Text = error 
    Else 
   Text2.Text =  
    End If 
End Sub

wenn die datei im selben verzeichnis liegt gibst du sie einfach ohne pfad an
 
  • #5
OK - Vielen Dank!
P.s. Thema abgeschlossen
 
  • #6
Hallo liebe Community,

ich habe heute versucht auf das Win 7 System das Spiel RTL Ski Springen 2006 zu installieren, kein Problem.
Beim öffnen des Spiels (beim starten nach dem installieren) kommt x64 driver...
Da das Spiel sehr alt ist gibt es leider keinen x64 Driver.
(Hab das Spiel auch in 32 Bit installiert und Kompatibilität geändert auf ME und XP und 98. nicht funktioniert.)

Deshalb habe ich versucht ein XP-Mode zu installieren.
Funktioniert ja nun leider nicht da ich ja mit Home Premium eine "billig" Version habe.
Also habe ich durch dieses Tutorial diesen XP-Mode nach installiert.


Installation funktioniert, der XP Mode an sich funktioniert, hab das Spiel installiert, nun kommt eine neue Fehlermeldung:
This version of VirtualPC not supported.
(Hab das Spiel auch in 32 Bit installiert und Kompatibilität geändert auf ME und XP und 98. nicht funktioniert.)

Gibt es denn keine Lösung um das Spiel doch noch zum laufen zu bekommen?
Ich habe es damals für viel Geld gekauft, habe jetzt den "Schrott" Windows 7 gekauft (vor einem Jahr) und seit dem funktioniert nur noch die Hälfte, zwar schneller aber nur noch die Hälfte..

Bitte helft mir.

Vielen Dank
Dan3er
 
  • #7
PS: Ich bitte nicht um Antworten wie: schmeiß dein PC raus oder schmeiß win 7 runter und installiere win xp.

Vielen Dank
 
  • #8
Guten Morgen Gemeinde,

ich installiere gerade die Win XP Updates, vielleicht klappt es ja dann.

Ich bitte trotzdem um Hilfe.

Danke.
 
  • #10
Hallo Bytehawk, genau das ding bin ich gerade am installieren ^^
 
  • #11
Hoffe dass es damit besser klappt und die Installation nicht umsonst ist...
 
  • #12
Also Bytehawk durch die VM Oracle VirtualBox hat es funktioniert.

Ich danke dir, Thema ist also abgeschlossen. :)

PS: RTL Skispringen 2007 läuft übrigends auch unter Windows 7
(habs drauf falls da wer fragen hat einfach melden)
 
  • #13
Falls noch wer Hilfe wegen Skispringen oder ähnlichen Spielen braucht hier ist der aktuelle Link

 
Thema:

VB 6.0

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.963
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben