vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Suche Visual-Basic Code
Re: Wörterbuch 
Autor: Danzi
Datum: 24.11.03 17:40

Um eine Datenbank zu erstellen, bedarf es keiner Installation einer Datenbankanwendung. Eine Datenbank ist eine ganz normale Datei. Du arbeitest halt mit normalen Textdateien (z. B. .ini). Eine Random-Datei ist aber viel leichter zu handhaben. Der folgende Code zeigt nur die Subs zum Speichern und Suchen. Er bracht natürlich noch eine Umgebung zur Steuerrung.
rem Deklarationsteil
Private Type WBDatensatz
    Deutsch As String * 50
    Italienisch As String * 50
End Type
Private WörterbuchDS As WBDatensatz
 
Private Sub EintragHinzufügen(ByVal DeutscherBegriff As String, ByVal _
  ItalienischerBegriff As String)
Open "C:\Wörterbuch" For Random As #1 Len = Len(WörterbuchDS)
WörterbuchDS.Deutsch = DeutscherBegriff
WörterbuchDS.Italienisch = ItalienischerBegriff
Put #1, LOF(1) / Len(WörterbuchDS) + 1, WörterbuchDS
Close #1
End Sub
 
Private Function DeutschenBegriffSuchen(ByVal ItalienischerBegriff As String) _
  As String
Dim SatzNr As Long
ItalienischerBegriff = UCase$(Trim$(ItalienischerBegriff))
Open "C:\Wörterbuch" For Random As #1 Len = Len(WörterbuchDS)
For SatzNr = 1 To LOF(1) / Len(WörterbuchDS)
    Get #1, SatzNr, WörterbuchDS
    If UCase$(Trim$(WörterbuchDS.Italienisch)) = ItalienischerBegriff Then
        DeutschenBegriffSuchen = Trim$(WörterbuchDS.Deutsch)
        Exit For
    End If
Next
Close #1
End Function
Warum macht ihr immer alles so umständlich?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Wörterbuch 
Autor: dstk
Datum: 13.11.03 09:37

Hallo!
Ich hab mir mal gedacht ich schreib ein Wörterbuch Deutsch-Italienisch.
Also natürlich würde es gehen, wenn ich jedes Wort mit If..Then..End If mache, aber das is stressig, stattdessen wäre eint *.txt oder .ini Datei feiner wo ich z.B.
schreibe hallo = ciao usw. Gibt es da eine Funktion die das reingeschriebene Wort nach Übereinstimmung in dieser Datei sucht und gegebenfalls holt?
ciao und danke

Übrigens: An Italienisch und Deutsch fehlts bei mir nicht

|||10110100011111110011|||

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Wörterbuch 
Autor: ModeratorDieter (Moderator)
Datum: 13.11.03 10:37

Hierfür gibt es zahlreiche Möglichkeiten.
Ich würde das Ganze - weil es könnte ja ziemlich umfangreich werden - in einer Datenbank verwalten.

_________________________
Professionelle Entwicklerkomponenten
www.tools4vb.de

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Wörterbuch 
Autor: dstk
Datum: 17.11.03 14:35

nana dat oder ini reich vollkommen, sind ja eh nur max 50 wörter drinnen
wie geht das dann? hab folgendes probiert:

Dim DateiNr As Integer
Dim Temp As String
Dim Zeile As String
Dim nC As Integer
 
 
Private Sub cmdt_Click()
DateiNr = FreeFile
Open "wb.dat" For Input As DateiNr
Dim txtital() As String
txtital = Split(Zeile, Chr$(32))
For nC = 0 To UBound(txtital)
Debug.Print txtital(nC)
Next nC
 
 
End Sub
Aber das funkt net.

nochmal die wörter stehen so:

italienisch = deutsch
... = ..... etc.


danke

|||10110100011111110011|||

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Wörterbuch 
Autor: dstk
Datum: 20.11.03 19:37

Also da ihr mir nich geholfen habt, hab ich mich selbstständig gemacht ;)
Hier ist der code: Original ist er von www.vb-fun.de
Hab ihn aber meinen bedürfnissen angepasst


' benötigt werden: Textfeld Text1, Command-Button Command1, List-Box List1 und 
' Label Label2
Option Explicit
 
Private Sub Text1_Validate(KeepFocus As Boolean)
    If Len(Text1) = 1 Then
    MsgBox "Devi inserire piú di una lettera sola!!!", vbCritical
    End If
End Sub
 
Private Sub Text1_GotFocus()
 
' Markieren wenn Text1 wieder angeklickt wird
 
    Text1.SelStart = 0
    Text1.SelLength = Len(Text1.Text)
End Sub
 
Private Sub Command1_Click()
  Dim x&, Zeilen() As String, FName$
 
 
    MousePointer = vbHourglass
    FName = App.Path & "\wb2.dat"
    List1.Clear
    Label2.Caption = ""
    Label2.Refresh
 
    'Die letzten beiden Parameter geben das linke und rechte
    'Begrenzungszeichen einer Zeile an, dies können auch
    'mehrere sein. Hier wurde für links vbLf (chr$(10)) und
    'für rechts vbCr (chr$(13)) gewählt
    If FindTerm(FName, Text1.Text, Zeilen, vbLf, vbCr) Then
      List1.Visible = False
      DoEvents
      For x = 0 To UBound(Zeilen) - 1
        If x < 32736 Then
          List1.AddItem Zeilen(x)
        Else
          List1.Clear
          List1.AddItem "Non c'é posto per tutti i nomi!"
          List1.AddItem "Specifica la tua richiesta!"
          Exit For
        End If
      Next x
      List1.Visible = True
    Else
      List1.AddItem "Parola non trovata!"
    End If
    If UBound(Zeilen) = 1 Then
    Label2.Caption = "1 riga trovata"
    ElseIf UBound(Zeilen) = 0 Then
    Label2.Caption = "0 rige trovate"
    ElseIf UBound(Zeilen) > 1 Then
    Label2.Caption = UBound(Zeilen) & " rige trovate"
    Else
    Label2.Caption = UBound(Zeilen) & " Riga(e) trovata(e)"
    End If
    MousePointer = vbDefault
End Sub
 
Private Function FindTerm(File$, s$, ZZ$(), tl$, tr$) As Boolean
  Dim c&, f%, i&, j&, L&, lc&, p&, v&, w&
  Dim a$, d$, n$, o$
 
  'Dieser Wert gibt die Paketgröße von Get# an. Er kann beliebig
  'geändert werden, sollte aber nicht kleiner als die längste
  'zu erwartende Zeile des zu druchsuchenden Files sein
  Const PS& = 1024&
 
    ReDim ZZ(0)
 
    'Prüfen ob Parameter plausibel sind
    If tl$ = "" Or _
       tr$ = "" Or _
       s$ = "" Or _
       Dir$(File, vbNormal) = "" Then
 
      List1.AddItem "I Parametri non sono giusti!"
      Exit Function
    End If
 
    f = FreeFile
    Open File For Binary Shared As #f
      L = LOF(f)
 
      'Anzahl der Durchläufe anhand der Dateigröße ermitteln
      p = L \ PS
      If L Mod PS <> 0 Then p = p + 1
 
      'Schleife starten
      For c = 1 To p
        n = Space$(PS)
        Get f, , n
        a = o & n
        i = InStr(1, a, s)
        If i <> 0 Then
          'Suchbegriff wurde im aktuellen Paket gefunden
          lc = 0
          Do
            i = InStr(i, a, s)
            If i <> 0 Then
 
              'Zeilenanfang suchen
              v = 1
              For j = i To 1 Step -1
                d = Mid$(a, j, 1)
                If InStr(1, tl, d) Then
                  'gefunden
                  v = j + 1
                  Exit For
                End If
              Next j
 
              'Zeilenende suchen
              w = 0
              For j = i To Len(a)
                d = Mid$(a, j, 1)
                If InStr(1, tr, d) Then
                  'gefunden
                  w = j - 1
                  Exit For
                End If
              Next j
 
              If w <> 0 Then
                'Zeile auschneiden und in einem Feld speichern
                'Hier könnten auch weitere Suchkriterien abge-
                'fragt werden.
                ZZ(UBound(ZZ)) = Mid$(a, v, w - v + 1)
                ReDim Preserve ZZ(0 To UBound(ZZ) + 1)
                lc = w
              End If
 
              i = w
            End If
          'Weiter schleifen, da der Suchbegriff im Paket ja
          'öfters als einmal auftauchen kann
          Loop Until i = 0
 
          If lc = 0 Then
            'Suchbegriff wurde im aktuellen Paket nicht ge-
            'funden. Daher ganzen String für die nächste Runde
            'speichern
            o = a
          Else
            'Ab Ende der zuletzt gefundenen Zeile des aktuel-
            'len Paketes für die nächste Runde speichern
            o = Mid$(a, lc)
          End If
        Else
          'Paket der aktuellen Runde speichern
          o = n
        End If
      Next c
    Close f
 
    If UBound(ZZ) > 0 Then FindTerm = True
End Function

|||10110100011111110011|||

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Wörterbuch 
Autor: Danzi
Datum: 23.11.03 19:42

Dieters Vorschlag ist besser. Eine Art Datenbank läßt sich mittels Random-Datei sehr schnell erstellen. Der Code wäre sehr viel kürzer und übersichtlicher. Obendrein lassen sich die Daten sehr leicht pflegen. Deine Lösung (die gefundene) ist ganz schön umständlich.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Wörterbuch 
Autor: dstk
Datum: 24.11.03 14:18

Es kommt darauf an: Ich finde dies nicht so umständlich, ausserdem sollte das Programm ohne Installation funktionieren. Wie würde deine bzw. Dieters Lösung ausschauen??

|||10110100011111110011|||

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Wörterbuch 
Autor: dstk
Datum: 25.11.03 16:35

also hier muss ich schon anmerken, dass hier meine methode viel leichter vorkommt. Es ist vielleicht weniger "Text", aber was macht das schon??

|||10110100011111110011|||

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Wörterbuch 
Autor: Danzi
Datum: 25.11.03 18:49

Bei einem Wörterbuch größeren Umfanges wirst Du es schon merken. Dann kann man mit meiner Methode mittels einer Vektor-Datei gezielt suchen und braucht nicht die ganze Datei durchsuchen.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Wörterbuch 
Autor: dstk
Datum: 26.11.03 21:07

Ach seis drum. Ich bin mit meiner methode zufrieden,k da ich es nur für ein Projekt brauch und nur die dort vorkommenden Wörter brauche. Aber trotzdem danke

|||10110100011111110011|||

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Wörterbuch 
Autor: Momo1968
Datum: 08.12.03 23:41

Ciao Amiego

ich bin Vielleicht Spät dran das ich deine Frage nicht gesehen habe , Also ich hatte auch diese Problem frühe aber da für habe ich ganz gute Idee gefunden das heißt du kannst dein Wörterbuch nicht mit if Then sondern mit einem Datenbank und das ist ganz einfach ich kann dir jetzt sofort ein ganz einfache Programm erstellen und du kannst weiter entwickeln .... aber Weist du wo ist Das Problem wer wird für dich 50000 Wörter schreiben???? das war für mich ein Problem!!! also wenn du Jemand Hast, dann ich helfe dir gern mit Programmieren

so in dein VB ein Neu Projekt EXE erstelen , und dann Menu Projekt Verweise: Öffnet sich ein fenster mit einem Liste du kannst Micosoft ActiveX Data Objekt 2.1 Library nehmen
und dann

du Brauchst ein Form mit 2 textbox und 2 Button und Hier ist dein beispiel du brauchst noch ein Datenbank der belebegen Name geben kannst unter Microsoft Access mit zwei fehlder ein solte heisen Italienisch und die 2 Deutsch und die tabel kannst du nehnen Wörterbuch aber das ist meien Idee nur du kannst andres nehenen.
und Hier ist das beispiel

Option Explicit
Public ObjCon As ADODB.Connection
Public ObjRs As ADODB.Recordset


Private Sub Command1_Click() '<<

If Not ObjRs.BOF Then
ObjRs.MovePrevious

If Not ObjRs.BOF Then
Text1.Text = ObjRs!italienisch
Text1.Text = ObjRs!Deutsch
End If
End If
End Sub

Private Sub Command2_Click() '>>

If Not ObjRs.EOF Then
ObjRs.MoveNext

If Not ObjRs.EOF Then
Text1.Text = ObjRs!italienisch
Text2.Text = ObjRs!Deutsch
End If
End If
End Sub

Private Sub Form_Load()

If ObjCon Is Nothing Then Set ObjCon = New ADODB.Connection
If ObjRs Is Nothing Then Set ObjRs = New ADODB.Recordset
'>> genau Hier du sollst
' die Name dein Datenbank
ObjCon.Open "Provider =Microsoft.Jet.oledb.4.0; Data source=c:\test.mdb"
ObjRs.Open "select Name,Ort From kundenbetreu", ObjCon, adOpenDynamic, adLockBatchOptimistic, adCmdText

Text1.Text = ObjRs!Name
Text2.Text = ObjRs!ort
End Sub
Viel spass

Also Hallo alle mit einander das macht echt spa? wenn Mann findet auch andre Leute die Ihm Helfen k?nnen und ich habe mich seit ?ber 4 Jahre mit VB besch?ftigt und ich war frustrieret wenn ich eine Problem Hatte die ich nicht l?sen K?nnte mit MSDN

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Wörterbuch 
Autor: dstk
Datum: 09.12.03 16:20

He danke für deine Hilfe aber ich hab das schön gelöst, wie du im oberen Thread vielleicht siehst. Aber ich denke, dass max 1000 Wörter da vorkommen werden und deshalb bin ich mit meiner methode ganz zufrieden. Trotzdem Danke und nichts für ungut

|||10110100011111110011|||

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel