Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Umlaute ersetzen?

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
mismoose



Anmeldungsdatum: 13.05.2005
Beiträge: 6

BeitragVerfasst am: 28.05.2005, 09:05    Titel: Umlaute ersetzen? Antworten mit Zitat

Hallo,

ich habe folgendes Problem.
Ich will mit einer qbasic-Datei eine Textdatei auslesen, und aus deren Inhalt alle Umlaute durch ae, oe usw. ersetzen.
Ich habe das so versucht:

FOR b = 1 to LEN(text$)
SELECT CASE MID$(text$, b, 1)
CASE "CHR$(132)"
MID$(text$, b) = "ae"

Aber das klappt nicht.
Kann jemand vielleicht einen Fehler finden?

Danke!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jan



Anmeldungsdatum: 04.01.2005
Beiträge: 74

BeitragVerfasst am: 28.05.2005, 09:16    Titel: Antworten mit Zitat

Morgen!

1. Die Anführungsstrichen bei dem CASE müssen weg:

Code:


FOR b = 1 to LEN(text$)
      SELECT CASE MID$(text$, b, 1)
             CASE CHR$(132)
             ...
      END SELECT
NEXT b


Weiterhin wird durch diese Anweisung,
Code:
MID$(text$, b) = "ae"

der restliche Teil des Wortes überschrieben, glaube ich.
daher solltest du alle Strings die du aus der variablen TEXT$ ausliest in einer anderen abspeichern:
Code:

FOR b = 1 to LEN(text$)
      a$ = MID$(text$,b,1)
      SELECT CASE a$
             CASE CHR$(132)
             temp$=temp$+"ae"
              ...
              ...
              CASE ELSE
              temp$=temp$+a$
      END SELECT
NEXT b


Am Ende noch einen CASE ELSE, da dann, wenn kein Umlaut vorhanden ist der String trotzdem kopiert wird.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
pinkpanther



Anmeldungsdatum: 28.05.2005
Beiträge: 79
Wohnort: Wien

BeitragVerfasst am: 28.05.2005, 12:30    Titel: Umlaute ersetzen! Antworten mit Zitat

Ich würde Dein Programmierproblem folgendermaßen lösen:
Code:

DECLARE FUNCTION sonderzeichenUmschreiben$ (Text$)

  Text$ = "Der Sommer ist die schönste Jahreszeit zum Gärtnern."

  CLS

  COLOR 15
  PRINT
  PRINT "Der Text"
  PRINT
  COLOR 11
  PRINT "    "; Text$
  COLOR 15
  PRINT
  PRINT "lautet nach Umwandlung der darin enthaltenen Sonderzeichen:"
  PRINT
  COLOR 10
  PRINT "    "; sonderzeichenUmschreiben$(Text$)
  COLOR 7

END

FUNCTION sonderzeichenUmschreiben$ (Text$)

  ' Liste der umzuwandelnden Sonderzeichen ('sz') und
  ' Liste der Ersatzzeichen ('ez')
  CONST szListe$ = "äöüßÄÖÜ"
  CONST ezListe$ = "aeoeueszAEOEUE"

  ' Parameter 'Text$' lokaler Variablen 'tempText$' zuweisen
  ' (die Funktion soll Parameter 'Text$' nicht verändern)
  tempText$ = Text$

  ' Für jedes Sonderzeichen in 'szListe$' feststellen, ob
  '   und an welchen Positionen in 'tempText$' es vorkommt.
  '   Jedes Vorkommen eines Sonderzeichens durch das entsprechende
  '   Ersatzzeichen ('ezListe$') ersetzen.
  FOR b% = 1 TO LEN(szListe$)

    ' ermittle je ein Sonderzeichen und ein Ersatzzeichen, die fü?r
    ' den aktuellen Schleifendurchlauf gelten sollen.
    ' Bei der Ermittlung der Position des aktuellen Ersatzzeichens
    ' in 'ezListe$' ist zu berü?cksichtigen, dass hier jedes Listenelement
    ' aus zwei Zeichen besteht.
    aktuellesSZ$ = MID$(szListe$, b%, 1)
    aktuellesEZ$ = MID$(ezListe$, (b% - 1) * 2 + 1, 2)

    ' 'letzteSZpos%' (Variable, die die Fundposition eines Sonderzeichens
    ' speichert) initialisieren, weil sonst bei nachfolgenden Sonderzeichen
    ' möglicherweise nicht ab Position 1 geprü?ft wird.
    letzteSZpos% = 0

    ' Verarbeitungsschleife f?ür Prü?f- und Ersetzungsvorgang
    ' (es können mehrere Sonderzeichen der gleichen Art in 'tempText$'
    ' vorkommen)
    DO

      ' mit Hilfe der Funktion INSTR Vorkommen/Position des aktuellen
      ' Sonderzeichens feststellen und in 'letzteSZpos%' speichern.
      ' Der Vergleich soll ab der der letzten Fundstelle folgenden Position
      ' ('letzteSZpos% + 1') beginnen (beim ersten Schleifendurchlauf ist
      ' dies durch die Initialisierung von 'letzteSZpos%' bedingt 1)
      letzteSZpos% = INSTR(letzteSZpos% + 1, tempText$, aktuellesSZ$)
     
      ' Wurde ein Vorkommen des aktuellen Sonderzichens festgestellt,
      ' ('letzteSZpos%' <> 0), Sonderzeichen in 'tempText$' durch
      ' Ersatzzeichen ersetzen.
      ' Dazu mit Hilfe von LEFT$/MID$ 'tempText$' in zwei Teilzeichenfolgen
      ' aufteilen, die vom Anfang bis unmittelbar vor das Sonderzeichen
      ' bzw. von unmittelbar nach dem Sonderzeichen bis zum Ende der
      ' Zeichenfolge reichen und mit dem Ersatzzeichen dazwischen wieder
      ' verketten.
      IF letzteSZpos% THEN
        tempText$ = LEFT$(tempText$, letzteSZpos% - 1) + aktuellesEZ$ + MID$(tempText$, letzteSZpos% + 1)
      END IF

      ' Schleife so lange wiederholen, als sich das aktuelle Sonderzeichen
      ' in 'tempText$' wiederholt, 'letzteSZpos%' also ungleich Null ist.
    LOOP WHILE letzteSZpos%

    ' nächstes Sonderzeichen aus 'szListe$' verarbeiten.
  NEXT

  ' umgewandelten Text dem Funktionsrü?ckgabewert zuweisen
  sonderzeichenUmschreiben$ = tempText$

END FUNCTION


Grüße
pinkpanther
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
mismoose



Anmeldungsdatum: 13.05.2005
Beiträge: 6

BeitragVerfasst am: 29.05.2005, 13:52    Titel: Antworten mit Zitat

Danke für die ausführlichen Antworten!

Leider hat nichts so richtig funktioniert. Nach langem Rumprobieren, hab ich festgestellt, dass es klappt, wenn ich die falsch angezeigten Umlaute durch "ae" und so weiter ersetze. Zum Beispiel wurde "ü" als ³ angezeit. Dann habe ich ³ durch "oe" ersetzt. Kommt mir zwar irgendwie komisch vor, aber die anderen Möglichkeiten haben nicht funktioniert.
Meint ihr, dass es vom PC oder vom Betriebssystem abhängt, wie die Umlaute dargestellt werden? Weil dann würde das Ersetzen ja nciht bei jedem funktionieren.
Und noch eine Frage: Kann man Absätze wie genauso wie Leerzeichen aus einem Text schneiden? Wenn ja, wie?
Ich hab schon überall gesucht, aber ncihts gefunden.

Ich hoffe, ihr könnt mir helfen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Kai Bareis



Anmeldungsdatum: 10.09.2004
Beiträge: 545
Wohnort: Baden Würtemberg

BeitragVerfasst am: 29.05.2005, 13:57    Titel: Antworten mit Zitat

Das wird daran liegen wen du deine Text Datei mit dem Windows Notepad öffnest. Da dieser den ANSI Zeichencode benutzt und Qbasic arbeitet halt mit dem ASCII Code.
_________________
MfG Kai Bareis
Es ist noch kein Meister vom Himmel gefallen! Warum einfach wens auch umständlich geht!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
pinkpanther



Anmeldungsdatum: 28.05.2005
Beiträge: 79
Wohnort: Wien

BeitragVerfasst am: 29.05.2005, 14:56    Titel: Antworten mit Zitat

Liebe/r mismoose,

Grund für die unterschiedliche Darstellung von Sonderzeichen unter DOS bzw. Windows sind die im jeweiligen Betriebssystem verwendeten unterschiedlichen Zeichensatztabellen (ASCII/ANSI), in denen deutsche Sonderzeichen an unterschiedlichen Positionen aufscheinen.

So gesehen stimmt deine Vermutung mit der "Abhängigkeit vom Betriebssystem". Innerhalb der im deutschen Sprachraum vertriebenen Windows-Versionen sollte diese "Codeverschiebung" allerdings nicht auftreten, da alle diese Versionen auf den gleichen (ANSI-)Standard zurückgreifen. Ausnahmen von dieser Regel bilden lediglich die Windows-Versionen 3.x, welche noch die unter DOS eingesetzte ASCII-Zeichentabelle verwenden.

Anbei mein bereits oben veröffentlichtes Programmbeispiel *ohne* Verwendung deutscher Sonderzeichen. Du solltest dieses Beispiel nunmehr problemlos und ohne weitere Überarbeitung über die Zwischenablage als Textdatei ablegen und von dort mit QBasic/QBX öffnen und ablaufen lassen können.

Code:

DECLARE FUNCTION sonderzeichenUmschreiben$ (Text$)

  'Testtext: "Der Sommer ist die schönste Jahreszeit zum Gärtnern"
  Text$ = "Der Sommer ist die sch" + CHR$(148) + "nste Jahreszeit zum "
  Text$ = Text$ + "G" + CHR$(132) + "rtnern."
 
  CLS

  COLOR 15
  PRINT
  PRINT "Der Text"
  PRINT
  COLOR 11
  PRINT "    "; Text$
  COLOR 15
  PRINT
  PRINT "lautet nach Umwandlung der darin enthaltenen Sonderzeichen:"
  PRINT
  COLOR 10
  PRINT "    "; sonderzeichenUmschreiben$(Text$)
  COLOR 7

END

FUNCTION sonderzeichenUmschreiben$ (Text$)
  STATIC szListe$, ezListe$

  ' Wenn noch nicht erstellt ( = Stringlaenge gleich Null),
  ' Liste der umzuwandelnden Sonderzeichen ('sz') und Liste der
  ' Ersatzzeichen ('ez') unter statischen Variablen anlegen
  IF LEN(szListe$) = 0 THEN
    szListe$ = CHR$(132) + CHR$(148) + CHR$(129) + CHR$(225)
    szListe$ = szListe$ + CHR$(142) + CHR$(153) + CHR$(154)
    ' Elemente 'szListe$':
    ' Sonderzeichen wie in 'ezListe$' umschrieben
  END IF
  IF LEN(ezListe$) = 0 THEN
    ezListe$ = "aeoeueszAEOEUE"
  END IF

  ' Parameter 'Text$' lokaler Variablen 'tempText$' zuweisen
  ' (die Funktion soll Parameter 'Text$' nicht veraendern)
  tempText$ = Text$

  ' Fuer jedes Sonderzeichen in 'szListe$' feststellen, ob
  '   und an welchen Positionen in 'tempText$' es vorkommt.
  '   Jedes Vorkommen eines Sonderzeichens durch das entsprechende
  '   Ersatzzeichen ('ezListe$') ersetzen.
  FOR b% = 1 TO LEN(szListe$)

    ' ermittle je ein Sonderzeichen und ein Ersatzzeichen, die fuer
    ' den aktuellen Schleifendurchlauf gelten sollen.
    ' Bei der Ermittlung der Position des aktuellen Ersatzzeichens
    ' in 'ezListe$' ist zu beruecksichtigen, dass hier jedes Listenelement
    ' aus zwei Zeichen besteht.
    aktuellesSZ$ = MID$(szListe$, b%, 1)
    aktuellesEZ$ = MID$(ezListe$, (b% - 1) * 2 + 1, 2)

    ' 'letzteSZpos%' (Variable, die die Fundposition eines Sonderzeichens
    ' speichert) initialisieren, weil sonst bei nachfolgenden Sonderzeichen
    ' moeglicherweise nicht ab Position 1 geprueft wird.
    letzteSZpos% = 0

    ' Verarbeitungsschleife fuer Pruef- und Ersetzungsvorgang
    ' (es koennen mehrere Sonderzeichen der gleichen Art in 'tempText$'
    ' vorkommen)
    DO

      ' mit Hilfe der Funktion INSTR Vorkommen/Position des aktuellen
      ' Sonderzeichens feststellen und in 'letzteSZpos%' speichern.
      ' Der Vergleich soll ab der der letzten Fundstelle folgenden Position
      ' ('letzteSZpos% + 1') beginnen (beim ersten Schleifendurchlauf ist
      ' dies durch die Initialisierung von 'letzteSZpos%' bedingt 1)
      letzteSZpos% = INSTR(letzteSZpos% + 1, tempText$, aktuellesSZ$)
     
      ' Wurde ein Vorkommen des aktuellen Sonderzeichens festgestellt,
      ' ('letzteSZpos%' <> 0), Sonderzeichen in 'tempText$' durch
      ' Ersatzzeichen ersetzen.
      ' Dazu mit Hilfe von LEFT$/MID$ 'tempText$' in zwei Teilzeichenfolgen
      ' aufteilen, die vom Anfang bis unmittelbar vor das Sonderzeichen
      ' bzw. von unmittelbar nach dem Sonderzeichen bis zum Ende der
      ' Zeichenfolge reichen und mit dem Ersatzzeichen dazwischen wieder
      ' verketten.
      IF letzteSZpos% THEN
        tempText$ = LEFT$(tempText$, letzteSZpos% - 1) + aktuellesEZ$ + MID$(tempText$, letzteSZpos% + 1)
      END IF

      ' Schleife so lange wiederholen, als sich das aktuelle Sonderzeichen
      ' in 'tempText$' wiederholt, 'letzteSZpos%' also ungleich Null ist.
    LOOP WHILE letzteSZpos%

    ' naechstes Sonderzeichen aus 'szListe$' verarbeiten.
  NEXT

  ' umgewandelten Text dem Funktionsrueckgabewert zuweisen
  sonderzeichenUmschreiben$ = tempText$

END FUNCTION


Zu deiner nächsten Frage:

Auch Absätze (im Programmiererjargon auch Zeilenvorschub oder CR genannt) lassen sich wie Leerzeichen oder jedes beliebige andere Zeichen aus einer Zeichenfolge "ausschneiden". Während du aber Leerzeichen sowohl über ihre Zeichendarstellung (" "), als auch über CHR$(32) ansprechen kannst, kannst du Absätze im Programmcode *nur* über CHR$(13) darstellen.

Code:

absatzPos% = INSTR(Text$, CHR$(13))


Hoffentlich sind damit alle Klarheiten beseitigt! ;-)

Schönen Sonntag noch!

LG
pinkpanther
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
mismoose



Anmeldungsdatum: 13.05.2005
Beiträge: 6

BeitragVerfasst am: 29.05.2005, 20:19    Titel: Antworten mit Zitat

Hey pinkpanther!

Das mit dem Absatz habe ich jetzt ausprobiert.
Es werden jetzt tatsächlich keine mehr angezeigt, aber dafür ist da jetzt so ein kleines schwarzes Kästchen. traurig
Und dein Vorschlag mit den Umlauten klappt immer noch nciht. Vielleicht liegt s daran, dass ich das nicht auf einen Text direkt im Programm anwenden will, sondern auf einen, der aus einer Textdatei eingelesen wird?

Sorry, ich glaube, das sind totale Newbiefragen.

LG, mis(s)moose

(hab bei der Anmeldung ein s vergessen.
Bin etwas chaotisch.)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 29.05.2005, 20:22    Titel: Antworten mit Zitat

Das kannst du doch unter Profil ändern, oder?

missmoose hat Folgendes geschrieben:

Vielleicht liegt s daran, dass ich das nicht auf einen Text direkt im Programm anwenden will, sondern auf einen, der aus einer Textdatei eingelesen wird?

Daran liegt's bestimmt nicht, FUNCTION ist und bleibt FUNCTION.

EDIT: Oh, sorry, ich dachte, den Namen könnte man unter Profil ändern... peinlich

jb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
pinkpanther



Anmeldungsdatum: 28.05.2005
Beiträge: 79
Wohnort: Wien

BeitragVerfasst am: 29.05.2005, 21:27    Titel: Antworten mit Zitat

Liebe(?) Missmoose,

was genau klappt nicht? Mein Code müsste eigentlich funktionieren!

Wie jb richtig bemerkt hat, ist es grundsätzlich egal, ob der String, der als Funktionsparameter übergeben wird, ursprünglich aus einer Textdatei gelesen wurde oder von einer Textkonstante ( = Text im Programmcode, der zwischen "..." steht) stammt.

Was mir aber als mögliche Problemursache einfällt, ist, dass die von dir verarbeitete Datei nicht im ASCII-, sondern im ANSI-Format vorliegt (also z.B. von einem Windows-Editor oder einer sonstigen Windows-Anwendung erstellt wurde). Meine FUNCTION, die auf ASCII-Codes abstellt, könnte in diesem Fall die umzuwandelnden Umlaute natürlich nicht finden.

Wenn meine Vermutung aber nicht stimmt und die verarbeitete Datei doch im ASCII-Format vorliegt (also von einer DOS-Anwendung erstellt wurde), würde ich vorschlagen, dass du den Programmteil, von dem aus du die FUNCTION aufrufst, postest und auch den Inhalt der zu verarbeitenden Textdatei (auszugsweise) wiedergibst.

So lässt sich das Problem am einfachsten eingrenzen, denke ich.

Zum Absatz-Problem:

Einer Absatzmarke (CHR$(13)) folgt im Regelfall immer ein Zeilenvorschubzeichen (CHR$(10)) nach, sodass du beide Zeichen ersetzen müsstest, wenn du den Zeilenumbruch entfernen willst. Wenn du nur CHR$(13) löschst, bleibt an jedem Zeilenende ein CHR$(10) übrig, das der Windows-Texteditor nicht als Zeilenumbruch erkennt und als nicht druckbares Zeichen auch nicht darstellen kann, weswegen ein schwarzes Kästchen angezeigt wird.

Der Code zum Ersetzen einer Zeilenschaltung in einer Zeichenfolgevariablen muss lauten:

Code:

DECLARE FUNCTION absaetzeEntfernen$ (rText$)

Text$ = "Fest gemauert in der Erden" + CHR$(13) + CHR$(10)
Text$ = Text$ + "steht die Form, aus Lehm gebrannt." + CHR$(13) + CHR$(10)
Text$ = Text$ + "Heute muss die Glocke werden," + CHR$(13) + CHR$(10)
Text$ = Text$ + "frisch, Gesellen, seid zur Hand!"

CLS
PRINT absaetzeEntfernen$(Text$)

FUNCTION absaetzeEntfernen$ (Text$)

  ' CHR$(13) + CHR$(10) (= Absatzmarke) einmal je Programmaufruf in
  ' statischer Variablen 'CrLf$' ablegen
  STATIC CrLf$
  IF LEN(CrLf$) = 0 THEN
    CrLf$ = CHR$(13) + CHR$(10)
  END IF


  ' Parameter soll nicht veraendert werden, daher dessen Wert der
  ' lokalen Variablen 'tempText$' zuweisen
  tempText$ = Text$


  ' Text nach Absatzmarken durchsuchen und jedes Vorkommen
  ' durch Leerzeichen ersetzen (sonst kleben Woerter am Zeilenende/
  ' naechsten Zeilenanfang zusammen)
  DO

    ' Position der Absatzmarke in 'absatzPos%' ablegen, wenn vorhanden
    ' (> 0), 'tempText$' in zwei Teilzeichenfolgen aufsplitten: vom
    ' Anfang bis unmittelbar vor der Absatzmarke, von unmittelbar nach
    ' der Absatzmarke bis Zeichenfolgenende; Teilzeichenfolgen mit
    ' dazwischen liegendem Leerzeichen wieder verketten und 'tempText$'
    ' zuweisen.
    absatzPos% = INSTR(absatzPos% + 1, tempText$, CrLf$)
    IF absatzPos% THEN
      tempText$ = LEFT$(tempText$, absatzPos% - 1) + " " + MID$(tempText$, absatzPos% + 2)
    END IF

    ' Schleife fortsetzen, solange im aktuellen Durchlauf
    ' eine Absatzmarke erkannt wurde.
  LOOP WHILE absatzPos%

  ' Text mit entfernten Absatzmarken ('tempText$') als Funktions-
  ' rueckgabewert zuweisen
  absaetzeEntfernen$ = tempText$

END FUNCTION


LG
pinkpanther
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
mismoose



Anmeldungsdatum: 13.05.2005
Beiträge: 6

BeitragVerfasst am: 30.05.2005, 16:52    Titel: Antworten mit Zitat

Hi pinkpanther!

Danke für die Zeilenvorschubhilfe! zwinkern
Funktioniert jetzt prima!
Und ja, ich habe den Text bis jetzt immer aus einer Editor-Textdatei gelesen.
Damit wäre dann ja auch die Ursache des Problems gefunden.
Ich teste jetzt gleich mal zum Süaß, wie das ganze mit einer Word-Datei klappt.

Liebe Grüße,
(die) missmoose
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Dusky_Joe



Anmeldungsdatum: 07.01.2005
Beiträge: 1007
Wohnort: Regensburg/Oberpfalz

BeitragVerfasst am: 30.05.2005, 17:18    Titel: Antworten mit Zitat

Bei nem Word-Doc wirste schöne Probleme haben, weil neben dem Text natürlich auch die Formatierung gespeichert wird. Die kann als TXT aufgemacht auch als ä ö oder ü gespeichert sein, so dass du deine DOC wohl eher zerstören wirst....
_________________
fully biological degradable

Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
mismoose



Anmeldungsdatum: 13.05.2005
Beiträge: 6

BeitragVerfasst am: 30.05.2005, 17:37    Titel: Antworten mit Zitat

Hi Dusky_Joe!

Wie ich gerade festgestellt habe, kann ich überhaupt keinen Text aus Word_dokumenten auslesen. Das klappt einfach nicht. traurig
Schade...

missmoose
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
pinkpanther



Anmeldungsdatum: 28.05.2005
Beiträge: 79
Wohnort: Wien

BeitragVerfasst am: 30.05.2005, 19:18    Titel: Antworten mit Zitat

Liebe Missmoose!

Nur der Sicherheit halber noch der Weg, wie du Sonderzeichen auch aus einer unter Windows erzeugten Textdatei entfernst:

Leg meinen am 29.05. um 14:56 geposteten Code (wieder) als Textdatei ab, öffne die Datei allerdings mit dem Windows-Editor und überschreibe...

... die Zuweisung von Text$ am Anfang (2 Zeilen):
Code:
Text$ = "Der Sommer ist die schönste Jahreszeit zum Gärtnern"


...die ersten Zeilen der FUNCTION (bis zum ersten END IF):

Code:
FUNCTION sonderzeichenUmschreiben$ (Text$)
  STATIC szListe$, ezListe$

  ' Wenn noch nicht erstellt ( = Stringlaenge gleich Null),
  ' Liste der umzuwandelnden Sonderzeichen ('sz') und Liste der
  ' Ersatzzeichen ('ez') unter statischen Variablen anlegen
  IF LEN(szListe$) = 0 THEN
    szListe$ = "äöüßAEOEUE"
    ' Elemente 'szListe$':
    ' Sonderzeichen wie in 'ezListe$' umschrieben
  END IF
  ...


Ein Word-Dokument mit QBasic auszulesen ist tatsächlich eine komplexe Aufgabe, vor allem, wenn darin reichlich Tabellen, Grafiken und Formatierungen vorkommen. Es ist die Frage, ob sich der Aufwand wirklich lohnt...

Viel Spaß noch - keep on coding!

LG
pinkpanther
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz