Suche Hilfe für Programmierung!

  • #1
W

Wolf_R._Voigt

Bekanntes Mitglied
Themenersteller
Dabei seit
13.05.2002
Beiträge
325
Reaktionspunkte
0
Ort
Berlin
Hi,

ich brauche Hilfe um ein Projekt für die Konvertierung von Word-Dateien (DOC/RTF) zu verwirklichen.
Es sollte ein Programm entstehen, welches zu Beginn erstmal einfache suche/ersetze-Funktionen enthält und in der Weiterentwicklung diese Funktionen um Platzhalter erweitert (Joker, variable numerische und alphanumerische Zeichen, Zeichenketten von-bis in beliebiger Menge usw.).

Mit freundlichen Grüßen, Wolf Voigt
 
  • #2
Das sind doch ziemlich spärliche Infos...
 
  • #3
Hi, die Antwort ist auch nicht informativer.

Wenn Du mehr Infos brauchst, solltest Du sagen worüber.
Dass man so ein Project nicht aus dem Ärmel schüttelt, ist mir schon klar.

MfG, Wolf Voigt
 
  • #4
Hallo und guten Tag,

ich werde mal versuchen, dass etwas umfassender zu beschreiben:

Es geht um MS Word.RTF-Dateien (nicht DOC's!), und da benörige ich ein Programm, welches eine umfassende Suche/Ersetze-Funktion beinhaltet, evtl. in folgender Form:

Definition der Joker = J/Platzhalter - numerisch, ASCII, Ziffern 1-9:

? = HEX48 - 57
J =? - ? --> ? -- ? (suche x-beliebige Ziffer --> übernehme die Ziffern umd ersetze mit folgendem String --> Ziffer/Wortzischenraum/Doppel-Divis/Wortzwischenraum/Ziffer)

Das Ganze sollte dann auch mit mehreren Ziffern funktiionieren:

? = HEX48 - 57
J = ??-?? --> ?? -- ??

usw.

Ich möchte diese String-Konvertierung gern als Plugin in Word einfügen oder als *.exe separat laufen lassen können.

Ich bin also kein Programmierer und habe nicht die geringste Ahnung davon, währe aber daran interessiert, mich einzuarbeiten. Die Frage wäre primär für mich, welche Programmiersprache passt da am besten? Ich denke Visual Basic oder C++?

Vielleicht kann jemand anhand des Beispiel oben schon sagen das geht am besten in der und er Programiersprache.

Vielen Dank für Euer Interesse, Wolf Voigt
 
  • #5
Hi

Das sollte am einfachsten über ein VBA Makro in Word funktionieren. Nur die Stringersetzung dürfte da nicht ganz so einfach wie z.B. ein Perl gehen.

Gruß, Michael
 
  • #6
Hi zusammen,

ich hab das Gewünschte mal zur Anschauung in einen Word-Makro gegossen.

Gruß Matjes :)

Code:
Option Explicit
Sub Test_NumBlancDivisBlancNum_To_NumBlancDoppelDivisBlancNum()
 ->Sucht-> --> über das ganze aktive Dokument:
 ->Wenn vor und nach der Fundstelle jeweils eine Zahl 0-9 steht,
 ->wird der einfache Bindestrich durch einen Doppelten ersetzt
  Const c_Suche =  - 
  Const c_Ersetze =  -- 
  Const c_offset = 1-> mindestens eine Zahl vor Suchstring notwendig

  Dim pos1 As Long, i_asc As Integer, b_ersetzt As Boolean
  Dim p As Paragraph, s_tmp As String

'Bildschirm-Update abschalten
Application.ScreenUpdating = False

For Each p In ActiveDocument.Paragraphs
 ->Text des Absatzes
  s_tmp = p.Range.Text
 ->Kennung, das etwas ersetzt wurde
  b_ersetzt = False
 ->erste Suchposition setzen
  pos1 = 1 + c_offset
 ->Solange Suchbegriff gefunden wurde
  Do While pos1 <> 0
   ->im Text suchen
    pos1 = InStr(pos1, s_tmp, c_Suche)
   ->wurde etwas gefunden ?
    If pos1 <> 0 Then
     ->Zeichen links von Fundstelle auf 0-9 untersuchen
      i_asc = Asc(Mid(s_tmp, pos1 - 1, 1))
      If i_asc >= 48 And i_asc <= 57 Then
       ->Zeichen rechs von Fundstelle auf 0-9 untersuchen
        i_asc = Asc(Mid(s_tmp, pos1 + Len(c_Suche), 1))
        If i_asc >= 48 And i_asc <= 57 Then
         ->Text ersetzen
          s_tmp = Left(s_tmp, pos1 - 1) & c_Ersetze & _
                  Right(s_tmp, Len(s_tmp) - pos1 - Len(c_Suche) + 1)
         ->Kennung, das etwas ersetzt wurde, setzen
          b_ersetzt = True
         ->nächste Suchposition hinter den ersetzen Text setzen
          pos1 = pos1 + Len(c_Ersetze)
        Else
         ->nächste Suchposition hinter die Fundstelle setzen
          pos1 = pos1 + Len(c_Suche)
        End If
      Else
       ->nächste Suchposition hinter die Fundstelle setzen
        pos1 = pos1 + Len(c_Suche)
      End If
    End If
  Loop
 ->wenn etwas ersetzt wurde, Text zurückschreiben
  If b_ersetzt = True Then p.Range.Text = s_tmp
Next
'Bildschirm-Update anschalten
Application.ScreenUpdating = True
End Sub
 
  • #7
Bei der Konvertierung von RTF-Datei in ein anderes Format, könnten Ihnen vielleicht noch andere Hilfsmittel gute Dienste leisten. Wenn zum Beispiel Programmiersprachen in Assembler übersetzt werden, wird zuerst ein Lexer und Parser eingesetzt, um die Struktur des Programmes zu erfassen, erst dann wird der Assemblercode erzeugt. Ich denke, dass ein Lexer und Parser auch bei Ihrem Problem gute Dienste leisten könnte. In Java gibt es eine gute Möglichkeit Lexer und Parser zu generieren. Folgende Links könnten Ihnen dabei weiterhelfen:

1. JLex (für die Erzeugung eines Lexers): http://www.cs.princeton.edu/~appel/modern/java/JLex/
2. CUP (für die Erzeugung eines Parsers): http://www.cs.princeton.edu/~appel/modern/java/CUP/
 
Thema:

Suche Hilfe für Programmierung!

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.838
Beiträge
707.961
Mitglieder
51.491
Neuestes Mitglied
haraldmuc
Oben