Übersetzung Werte im File
Übersicht

StefenBetreff: Übersetzung Werte im File |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo Leute,
ich habe mal ein Frage ! Ich habe ein Spiel was nach jeder Spielrunde eine Spiel Historie als Textfile auf der Platte speichert. Einige Leute kennen solche Histories vielleicht vom Online Pokern, es hat mit diesem Spiel aber nichts zu tun. Dort sind die Daten der letzten Spielrunde wie Spieltischdaten, Spielernamen, Ergebnisse usw. in Englisch gespeichert. Nun möchte ich gerne ein Programm erstellen, was die Files automatisch nach jeder Runde einliest, die Begriffe ins Deutsche umwandelt und wieder abspeichert. In jedem File sind etwa 50 standardisierte Begriffe enthalten, diese möchte ich in die jeweilige Sprache für ein weiteres Programm umwandeln. BEISPIEL : Original Code: [AUSKLAPPEN] Game ID #342434 Level : 3 Time : 12.12.08 - 12.12 .. Player 1 : MisterX .. Seat 1 : MisterX ... Points Player 1 : 4000 USW... BEISPIEL : Neu Code: [AUSKLAPPEN] Spiel Nr. : #342434 Spielrunde : 3 Zeit : 12.12.08 - 12.12 .. Spieler 1 : MisterX .. Sitzplatz 1 : MisterX ... Punkte Spieler 1 : 4000 Wichtig ist auch das die Formatierung der Daten nicht verloren gehen, da das File wieder von einem anderen Programm eingelesen und verarbeitet wird. Sollte man das ganze File in ein Array einlesen und dann eine komplette Vergleichssuche machen, oder lieber Zeile für Zeile? Auch das automatische auslesen und übersetzen nach jeder Runde sollte sehr schnell gehen. Sollte man das mit einem reinen Timer machen, oder ermitteln ob ein neues File im Verzeichnis vorhanden ist. Vielleicht könnte mir jemand einen Denkanstoss geben, wie man an die Sache am besten rangehen könnte ! Eventuell gibt es auch schon etwas ähnliches in dieser Art. Danke für eure zahlreichen Tips |
||
Tpro |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Du kannst sie ja einfach hintereinander mit Readline einlesen und dan die Schlüsselwörter ersetzen. (Der Befehl müsste replace oder so heißen!) | ||
Der Optimist: "Das Glas ist halb voll"
Der Pessimist: "Das Glas ist halb leer" Der Ingenieur: "Das Glas ist doppelt so groß wie es sein müsste" |
Stefen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke, ich hatte mir auch schon sowas in die Richtung gedacht !
Code: [AUSKLAPPEN] englisch$="Seat" deutsch$="Platz" Datei$="C:\text.txt" DateiID = ReadFile(Datei$) While Not Eof(DateiID) content$=ReadLine$(DateiID) Text$=Replace$(content$, englisch$, deutsch$) Print Text$ Wend Nur wie mache ich es jetzt aber mit mehreren Worten in einem File die ich übersetzen möchte. Soll ich das mit Data, Dim oder die Übersetzung besser in Types ablegen. Vielleicht kann mir jemand mit einem kleinen Quellcode auf die Sprünge helfen. Danke für eure Mühe. |
||
![]() |
The_Nici |
![]() Antworten mit Zitat ![]() |
---|---|---|
Schreibs in ein neues File? | ||
Stefen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Später möchte ich das Ergebnis auch in einer Datei speichern, es geht mir aber jetzt darum wie ich die Suche definiere !
Soll ich das mit Dims machen und in eine Schleife durchlaufen lassen, oder wie ? Im oberen Beispiel kann ich immer nur ein Wort pro Durchlauf übersetzen, wie mache ich das mit dem kompletten File wo auch mehrere betreffende Wörter in einer Zeile stehen. Ich habe da ein bischen Probleme mit der Routine die alle Deutsch/Englischen Wörter enthält. Aber vielleicht kann mir ja doch noch jemand helden. Dim deutsch$(10) Dim englisch$(10) englisch$(0) = "Game ID" englisch$(1) = "Level" englisch$(2) = "Player" deutsch$(0) = "Spiel Nr" deutsch$(1) = "Spielrunde" deutsch$(2) = "Spieler" Danke für die Hilfe |
||
Tpro |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
also das aller einfachste ist wenn du alle Zeilen deiner File jewails mit einem Zeilen Ende Zeichen (also eigentlich carriagereturn: in C "\n", ich würd in BB "µ" (altgr + m)nehmen ) dazwischen in einen string reinschreibst.
Und dann alle deine Wörter die du übersetzen möchtest mit hilfe von Replace austauschen. z.B. Code: [AUSKLAPPEN] tex$="" file=readfile("blblb") While not eof(file) tex$=tex+Readline(file)+"µ" Wend Replace(tex, "Game ID","Spiel Nr") Replace(tex, "Level","Spielrunde") . . . closefile file Du müsstest nocheinmal nachschauen welche Parameter du genau an Replace übergeben musst. Die Zeilen Ende Zeichen wirst du dan brauchen wenn du das ganze entweder auf dem Bildschirm oder in eine Datei zurückgeben willst! |
||
Der Optimist: "Das Glas ist halb voll"
Der Pessimist: "Das Glas ist halb leer" Der Ingenieur: "Das Glas ist doppelt so groß wie es sein müsste" |
Stefen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke, ich hatte es auch schon so in etwa gelöst !
Ich habe dabei rausgefunden, das es bei sehr grossen Files besser ist direkt die "Replace" Anweisungen untereinander zu schreiben. Es sieht zwar nicht so schön aus wenn da 100 gleiche Anweisungen stehen, es aber viel schneller ist als wenn ich das in einer Schleife durchlaufen lasse. Ob ich die Wörter aus einem File hole, werde ich noch ausprobieren. Code: [AUSKLAPPEN] Dim englisch$(50), deutsch$(50) englisch$(0)="Player" deutsch$(0)="Spieler" englisch$(1)="Game ID" deutsch$(1)="Spiel Nr" englisch$(2)="Level" deutsch$(2)="Spielrunde" .. .. Dateischreibe$="C:\2.txt" Dateilese$="C:\1.txt" Dateilese = ReadFile(Dateilese$) Dateischreibe = WriteFile(Dateischreibe$) While Not Eof(Dateilese) Content$=ReadLine$(Dateilese) Content$=Replace$(Content$, englisch$(0), deutsch$(0)) Content$=Replace$(Content$, englisch$(1), deutsch$(1)) Content$=Replace$(Content$, englisch$(2), deutsch$(2)) .. .. .. WriteLine Dateischreibe, Content$ Wend CloseFile Dateischreibe |
||
![]() |
Who |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi
Code: [AUSKLAPPEN] Dim englisch$(50), deutsch$(50)
englisch$(0)="Player" deutsch$(0)="Spieler" englisch$(1)="Game ID" deutsch$(1)="Spiel Nr" englisch$(2)="Level" deutsch$(2)="Spielrunde" Dateischreibe$="C:\2.txt" Dateilese$="C:\1.txt" Dateilese = ReadFile(Dateilese$) Dateischreibe = WriteFile(Dateischreibe$) While Not Eof(Dateilese) Content$=ReadLine$(Dateilese) For I = 0 to 50 ; <--- einzige Veränderung in den 3 Zeilen Content$=Replace$(Content$, englisch$(I), deutsch$(I)) Next WriteLine Dateischreibe, Content$ Wend CloseFile Dateischreibe Alles wunderbar, nur die Tipparbeit musst du dir echt nicht machen ![]() MFG |
||
Stefen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke für Deine Mühe, nur leider funktioniert das so nicht mit der Schleife an der Stelle. | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group