Seite 2 von 2

Verfasst: 31.08.2005 16:50
von Kiffi
> Ich sehe schon, es kann mir keiner Helfen :( .

vielleicht solltest Du für's erste Deine Erwartungshaltung ein wenig
herunterschrauben. Hier programmiert man selten auf Zuruf. Die Tatsache,
dass ich unten stehenden Code poste, hängt mir meiner derzeitigen guten
Laune zusammen.

So, um wieder On-Topic zu werden:

Erstelle eine Datei mit dem Texteditor mit folgendem Inhalt:

Code: Alles auswählen

Bildschirm;Screen
Tastatur;Keyboard
Hauptplatine;Motherboard
und speichere sie unter [c]C:\vokabeln.txt[/c] ab.

Danach startest Du Dein PureBasic und fügst folgenden Code ein:

Code: Alles auswählen

Structure s_Vokabeln
  Deutsch$
  Englisch$
EndStructure

NewList Vokablen.s_Vokabeln()

FF = ReadFile(#PB_Any, "C:\Vokabeln.txt") ; Datei zum Lesen öffnen

If FF 
  
  While Eof(FF) = 0 ; Bis zum Ende der Datei lesen
    
    strZeile$ = ReadString() ; String auslesen
    
    If strZeile$ <> ""
      
      AddElement(Vokablen()) ; Vokabel hinzufügen
      
      Vokablen()\Deutsch$=StringField(strZeile$,1,";")
      Vokablen()\Englisch$=StringField(strZeile$,2,";")
      
    EndIf
    
  Wend
  
  ; Datei wieder schliessen
  
  CloseFile(FF)
  
Else
  
  MessageRequester("Vokabeltrainer", "Konnte Vokabeln nicht laden!")
  
EndIf

If CountList(Vokablen())=0
  
  MessageRequester("Vokabeltrainer", "Die Vokabeldatei enthält keine verwertbaren Daten")

Else
  
  Repeat

    Gefunden = 0 ; Kennzeichen, dass angibt, ob der Suchbegriff gefunden wurde
    
    strSuchbegriff$ = InputRequester("Geben Sie bitte einen Suchbegriff ein!","","")
    
    If strSuchbegriff$ = "" ; Leereingabe beendet das Programm
      
      MessageRequester("Vokabeltrainer", "Programm wird beendet")
      Break ; Mit diesem Break beendet man die Repeat/Forever - Schleife
      
    Else
      
      ForEach Vokablen()
        
        If strSuchbegriff$ = Vokablen()\Deutsch$
          Gefunden = 1
          MessageRequester("Vokabeltrainer", Vokablen()\Englisch$)
          Break; Mit diesem Break beendet man die ForEach - Schleife
        EndIf
      
      Next
      
      If Gefunden = 0
        
        MessageRequester("Vokabeltrainer", "Der gesuchte Begriff wurde nicht gefunden!")
        
      EndIf
        
    EndIf
    
  ForEver
 
EndIf
Das sollte für den ersten Einstieg reichen. Unbekannte Befehle werden Dir
erklärt, indem Du den Cursor auf den Befehl setzt und danach <F1>
drückst.

Falls noch Fragen sind -> Wir sind bei Dir :-)

Grüße ... Kiffi

Verfasst: 31.08.2005 16:59
von DarkDragon
http://www.purearea.net/pb/showcase/sho ... ion=myProj

;) Ein Übersetzungsprogram

Achja: Wenn du deine Wörterbücher abspeicherst, dann kanns zu lizenzproblemen kommen. Dann darfst du mehr als 1000 Euro blechen.

Verfasst: 31.08.2005 17:01
von hardfalcon
Achso, du willst unbedingt ein Übersetzungsprogramm machen, nur soll es halt einfach umzusetzen sein? Sry, ich hatte das nicht gleich kapiert... :oops:

In dem Fall kann ich mich Kiffi nur anschliessen: speicher deinen Wortschatz in einer normalen Datei. Z.b. so:

Code: Alles auswählen

OpenFile(0,"Wortschatz.dat")
WriteStringN("Spielzeug"+Chr(1)+"toy")
WriteStringN("Kind"+Chr(1)+"child")
WriteStringN("Haus"+Chr(1)+"house")
WriteStringN("Hund"+Chr(1)+"dog")
WriteStringN("Katze"+Chr(1)+"cat")
CloseFile(0)
Und hier der Code zum Auswerten:

Code: Alles auswählen

DefType.s Vokabel, Wort

Wort = "Katze"

Structure dict
  Deutsch.s
  Englisch.s
EndStructure

NewList Wortschatz.dict()

ReadFile(0,"Wortschatz.dat")

Repeat
  AddElement(Wortschatz())
  Vokabel = ReadString()
  Wortschatz()\Deutsch = StringField(Vokabel.s,1,Chr(1))
  Wortschatz()\Englisch = StringField(Vokabel.s,2,Chr(1))
Until Eof(0)

ForEach Wortschatz()
  If Wort = Wortschatz()\Deutsch Or Wort = Wortschatz()\Englisch
    Debug "Deutsch: " + Wortschatz()\Deutsch
    Debug "Englisch: " + Wortschatz()\Englisch
    CloseFile(0)
    End
  EndIf
Next
Debug "Das gesuchte Wort ist leider nicht in meinem Wortschatz"
Debug "vorhanden! Du glaubst ja gar nicht wie sehr mich das alles"
Debug "deprimiert! :-("
CloseFile(0)
//EDIT: da ist mir wohl wer zuvorgekommen...

@DD:
>>Achja: Wenn du deine Wörterbücher abspeicherst, dann kanns zu lizenzproblemen kommen. Dann darfst du mehr als 1000 Euro blechen.

Warum denn das?!

Verfasst: 31.08.2005 17:11
von DarkDragon
hardfalcon hat geschrieben:>>Achja: Wenn du deine Wörterbücher abspeicherst, dann kanns zu lizenzproblemen kommen. Dann darfst du mehr als 1000 Euro blechen.

Warum denn das?!
Da hat mir jemand mal aus dem IRC ne Geschichte erzählt, dass er verklagt wurde, weil er anscheinend ein Wörterbuch einer bestimmten Firma benutzt hat.

Verfasst: 31.08.2005 17:44
von blackpannther
Danke für eure Hilfe und Kritik.

also das mit dem TXT Datei kenne ich noch von C und C++, das haben wir so gehandhabt beim Fuhrpark oder Sortier Alg.

Ich dachte es geht einfacher mit Access, so dann Probier ich es mal für den Anfang so wie Ihr es mir geschrieben habt.

Danke für die Zahlreiche Infos

grüße euch

blacki

Verfasst: 31.08.2005 18:06
von hardfalcon
DarkDragon hat geschrieben:
hardfalcon hat geschrieben:>>Achja: Wenn du deine Wörterbücher abspeicherst, dann kanns zu lizenzproblemen kommen. Dann darfst du mehr als 1000 Euro blechen.

Warum denn das?!
Da hat mir jemand mal aus dem IRC ne Geschichte erzählt, dass er verklagt wurde, weil er anscheinend ein Wörterbuch einer bestimmten Firma benutzt hat.
Dann müssen die dir ja nachweisen können, dass du TATSÄCHLICH ihr Wörterbuch kopiert hast, und das nicht einfach bloss auf deinem Allgemeinwissen basiert... Denk ich mal... :freak:

Verfasst: 02.09.2005 19:59
von PAMKKKKK
Für sowas ist aber eine Datenbank am besten geeignet!!!
Ich benutze zum zugriff und die Erstellung von Access die Userlibrary MDB von Paul Leishow.
http://www.reelmedia.org/cgi-bin/PurePr ... es&sub=ASM

Beispiel:

Code: Alles auswählen

; Access Database Sample
; MDB UserLib for Easy Database Setup by Paul Leischow 
; Copyright ©2003-2005 Reel Media Productions.
; Diese Beispiel funktioniert nur in der IDE mit Debugger! 

curdir.s=Space(250)
GetCurrentDirectory_(250,@curdir)
If Right(curdir,1)<>"\":curdir+"\":EndIf

; Datenbank erstellen
MDB_Create(curdir+"Test")

; Datenbank verbinden
db=MDB_Connect(curdir,"Test","","")

If db
; SQL Befehl zum Tabelle erstellen
SQL.s = "Create table Info(id autoincrement,name text(100),phone text(50),constraint Info unique(id));"
If DatabaseQuery(SQL) ; SQL Befehl ausführen
; SQL Befehl zum einfügen von Daten in die Tabelle
SQL = "Insert into Info(name,phone)values('Paul','555-1234')"
DatabaseQuery(SQL) ; SQL Befehl ausführen
; SQL Befehl zum einfügen von Daten in die Tabelle
SQL = "Insert into Info(name,phone)values('Fred','555-0098')"
DatabaseQuery(SQL) ; SQL Befehl ausführen
; SQL Befehl zum einfügen von Daten in die Tabelle
SQL = "Insert into Info(name,phone)values('Joey','555-4455')"
DatabaseQuery(SQL) ; SQL Befehl ausführen
Else
Debug "Data already exists"
EndIf

; SQL Befehl zum Auslesen von Daten der Tabelle
SQL = "Select * from Info order by name asc;"
If DatabaseQuery(SQL) ; SQL Befehl ausführen
While NextDatabaseRow() ; gelesene Daten aus der Datenbank durchlaufen
Debug Str(GetDatabaseLong(0))+": "+GetDatabaseString(1)+" ..."+GetDatabaseString(2) ; gelesene Daten aus der Datenbank ausgeben
Wend
EndIf

CloseDatabase(db)
EndIf

MDB_Disconnect("Test")
End