![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Veteran
![]() Registriert seit: 07.07.2002
Ort: Wien
Alter: 52
Beiträge: 251
|
![]() Liebe Gemeinde,
hab diese Frage schon bei "Software" gepostet, wo ich nicht wirklich geholfen wurde (hab erst später gesehen dass es hier auch einen Punkt mit "Programmierung" gibt ![]() Es geht um folgendes Problemchen, das für mich als Nicht-Programmierer ein echtes Problem ist ![]() ![]() ![]() Ich würde gerne einen sehr langen Text (in Word 2002) mit englischer Schachnotation in deutsche umwandeln, z.B. "21.Qh4 Ne3" in "21.Dh4 Se3". Ein einfaches Makro mit suche - ersetze geht nicht, da im Text auch viele Kommentare vorkommen, die sonst auch ersetzt werden würden. Am besten wäre das Schema: ersetze alle N<a bis h><1 bis 8> durch S<a bis h><1 bis 8> (Springer) ersetze alle B<a bis h><1 bis 8> durch L<a bis h><1 bis 8> (Läufer) ersetze alle R<a bis h><1 bis 8> durch T<a bis h><1 bis 8> (Turm) ersetze alle Q<a bis h><1 bis 8> durch D<a bis h><1 bis 8> (Dame) Vielleicht ginge das so?: Für alle a, b, c, d, e, f, g, h setze die Variable X Für alle 1, 2, 3, 4, 5, 6, 7, 8 setze die Variable Y Dann suche nach Kombination NXY und ersetze mit SXY (Springer) Dann suche nach Kombination BXY und ersetze mit LXY (Läufer) Dann suche nach Kombination RXY und ersetze mit TXY (Turm) Dann suche nach Kombination QXY und ersetze mit DXY (Dame) Wie gesagt habe ich keine Ahnung vom Programmieren - bitte eine Antwort für Dummies ![]() DANKE
____________________________________
*************************************** Schnell muß er nicht sein, aber stabil! |
![]() |
![]() |
![]() |
#2 |
Jr. Member
![]() Registriert seit: 13.07.2004
Alter: 47
Beiträge: 71
|
![]() Also ich bin mir nicht sicher, was du konkret machen willst, aber wenns nur um das ersetzen gewisser Zeichen mit anderen geht ....
Erstelle dir 2 String-Arrays Dim arr1(20) as String Dim arr2(20) as String (für 20 Einträge ... 0 - 19 = Index) ... dann schreibst du einfach in das eine die deutsche Notation: arr1(0) = "was auch immer" und ins andere die Übersetzung: arr2(0) = "what ever" , aber immer an der gleichen Position. das nächste dann arr1(1) = .... arr2(1) = ... usw. Dann einfach im Programm die Texte durchgehen und immer vergleichen, und wenns passt dann ersetzen wenn gefunden an der Stelle arr1(x) mit dem String im arr2(x) ... und das wars. Das ganze halt in eine sinnvolle for oder while Schleife einbauen. ok! Falls du es noch genauer haben willst, dann sag's einfach. XL
____________________________________
give all that you can, and you\'ll get more than you need! \"XL\" |
![]() |
![]() |
![]() |
#3 |
Inventar
![]() Registriert seit: 08.04.2001
Beiträge: 3.101
|
![]() |
![]() |
![]() |
![]() |
#4 |
Master
![]() |
![]() Ich hab von VBA zwar kein Ahnung, aber es wird da doch bestimmt irgendeine Möglichkeit geben Reguläre Ausdrücke zu Verwenden, das wäre ,glaube ich, die einfachste Lösung.
____________________________________
The knack of flying is learning how to throw yourself at the ground and miss. Es heißt Fluglotse, ein z kommt in diesem Wort nicht vor. |
![]() |
![]() |
![]() |
#5 |
Master
![]() Registriert seit: 22.03.2000
Alter: 66
Beiträge: 550
|
![]() Hi!
Das könnte heikel werden. Ausgehend von deinem Beispiel ("21.Qh4 Ne3")würde ich so vorgehen: 1. Nach einem Punkt suchen 2. Prüfen ob der Punkt in einem zu bearbeitenden Text-Teil steht Vom Punkt nach links nur Ziffer bis zum Hochkomma Vom Punkt nach rechts Groß, Klein, Ziffer, Blank, Groß, Klein, Ziffer, Hochkomma. 3. Falls nötig Buchstaben ersetzen. Das Problem ist die Regel, die den String identifiziert. Wenn die einen Denkfehler enthält ist die Datei hin. Also nur auf eine Kopie arbeiten, und die Regel mit Probieren entwickeln und verbessern. Durchschaubarer wird es, wenn du den Text Zeilenweise abarbeitest. mfg WB |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|