VB 6.0

Dieses Thema VB 6.0 im Forum "Webentwicklung, Hosting & Programmierung" wurde erstellt von Alexander16, 19. Sep. 2002.

Thema: VB 6.0 Also hier bin ich wieder mit einem neuen Problem. ;D Ich habe ein Form mit zwei TextBoxen erstellt. Es es ist auch...

  1. 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.
    Windows 7 Home Premium Windows XP Modus nachinstallieren

    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.
     
  9. Hallo Bytehawk, genau das ding bin ich gerade am installieren ^^