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:

Kann QBasic spezielle Probleme lösen?

 
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
Helli M.



Anmeldungsdatum: 20.12.2004
Beiträge: 29
Wohnort: Burgenland in Österreich

BeitragVerfasst am: 16.01.2005, 19:01    Titel: Kann QBasic spezielle Probleme lösen? Antworten mit Zitat

Hallo an Euch!!!

Schön langsam komm ich mit den einfacheren Sachen mehr oder weniger gut zurecht.
Jetzt habe ich mir vorgenommen, auf eine ganz bestimmte Sache hinzuarbeiten...
ICh möchte ein Programm schreiben, mit dem man ein Word.doc öffnet, und dann alles, was zwischen () in Kürzeln steht, automatisch ausschreibt.
Ein Freund von mir schreibt Bücher, dann bekomme ich das Skriptum und schreibe die Kürzel von Hand rein.
Kann man das mit QBasic realisieren? mit den Augen rollen
Wenn ja, kann ich das in Angriff nehmen, obwohl ich eigentlich so gut wie keine Ahnung habe???
Was meint Ihr dazu??
Liebe Grüße
Helli
_________________
Wieso einfach, wenn's auch kompliziert geht?!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 16.01.2005, 19:43    Titel: Antworten mit Zitat

dafür ist doc ein schlechtes Format. Öffen mal ne Word-Datei mim Editor...
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
E-P-S



Anmeldungsdatum: 16.09.2004
Beiträge: 500
Wohnort: Neuruppin

BeitragVerfasst am: 16.01.2005, 20:03    Titel: Antworten mit Zitat

das stimmt...

theoretisch ist es zwar möglich eine Datei zu öffnen und nach dem Inhalt von Klammern zu suchen, diesen zu ersetzen und die Datei "neu" zu schreiben, jedoch glaube ich nicht das einem das Word-Format das so ohne weiteres durchgehen lässt.

So wie ich Microsoft kenne lässt sich die Datei danach garantiert nicht mehr in Word öffnen bzw. bearbeiten.

Dann würde ich lieber versuchen mir ein passendes Makro in VB Script zu erstellen.
_________________
Man kann sich öfter als zweimal im Leben halb tot lachen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 16.01.2005, 20:17    Titel: Antworten mit Zitat

Hallo.

RTF dürfte in QB schaffbar sein. lächeln Das ist ein formatierbares Format, das von allen gängigen Textverarbeitungsprogrammen unterstützt wird. lächeln

Viele Grüße!
Sebastian
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Mecki
Igel


Anmeldungsdatum: 10.09.2004
Beiträge: 985
Wohnort: Niederbayern

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

Hi,

Eine andere Mögichkeit ist statt .doc das RichText-Format (.rtf) zu benutzen.

Dieses ist leichter zu durchschauen und man kann, glaube ich, auch Word-Dateien so abspeichern.

Hier steht dann (abgesehen von der Formatierung) der Text, den dein Dokument-Betrachter (z.B. OpenOffice oder MS Word) anzeigt, wenigstens im Klartext da, was deiner QB-Routine ermöglicht, an dieser Stelle die Klammern zu erkennen und eine Änderung vorzunehmen.

Grüßle,
Mecki

EDIT: Mensch Sebi grinsen Um ~2 Minuten zu langsam *heul*
_________________
» Yodl.de: So sucht man gestern. verwundert
» Geld verdienen im Netz + ICQ.
» Firefox!
» 100€ zu gewinnen
» FreeBASIC.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger MSN Messenger
Helli M.



Anmeldungsdatum: 20.12.2004
Beiträge: 29
Wohnort: Burgenland in Österreich

BeitragVerfasst am: 16.01.2005, 20:54    Titel: Antworten mit Zitat

Hallo Euch!!!

Das ist sehr interessant!!
Nur mal so dahergesponnen...
Ist es denn möglich, dass QBasic es schafft, Word.doc als rtf zu öffnen, seine Arbeit mit dem ausschreiben zu machen und dann das ganze wieder als Word.doc zu speichern??
Liebe Grüße
Helli
_________________
Wieso einfach, wenn's auch kompliziert geht?!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 16.01.2005, 22:02    Titel: Antworten mit Zitat

So viel ich weiss, umfassen die Dateiformatspezifikationen bei Word mehrere dicke DIN A4-Bundesordner. Da das Word-Format ohnehin ein proprietäres Format darstellt, welches sich mit jeder Microsoft Office-Version wieder ändert, würde ich es gar nicht erst in QB direkt verarbeiten versuchen. Stattdessen ist der Zugriff auf die Automatisierungsobjekte der geeignetere Weg. Beispiel:
Code:
' Dies ist QB, von dem wir ein temporäres .VBS erzeugen
OPEN ENVIRON$("TEMP") + "\~WORDPRC.VBS" FOR OUTPUT AS 1
PRINT#1, "Set oWord = CreateObject(" + CHR$(34) + "Word.Application" + CHR$(34) + ")"
PRINT#1, "oWord.Documents.Open " + CHR$(34) + "C:\Verzeichnis\MeinWordDokument.doc" + CHR$(34)
' .. (hier Verarbeitungsschritte einfügen)
PRINT#1, "Set oWord = Nothing"
CLOSE 1
SHELL "cscript //NoLogo " + ENVIRON$("TEMP") + "\~WORDPRC.VBS"
KILL ENVIRON$("TEMP") + "\~WORDPRC.VBS"

Weiterführende Informationen zum Thema:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/off2000/html/woobjapplication.asp
http://msdn.microsoft.com/scripting

@Helli M.:
Falls Du gerne ein eigener Parser für RTF schreiben möchtest:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnrtfspec/html/rtfspec.asp

=> hier die vollständigen Spezifikationen zum RTF-Dateiformat.
_________________
Teste die PC-Sicherheit mit www.sec-check.net


Zuletzt bearbeitet von dreael am 16.01.2005, 22:05, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 16.01.2005, 22:03    Titel: Antworten mit Zitat

Nein. du kannst auch kein bmp als gif öffnen xD

du musst das Dokument als RTF speichern. sonst kannst dus ned als RTF öffnen.
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
stef



Anmeldungsdatum: 13.01.2005
Beiträge: 102

BeitragVerfasst am: 17.01.2005, 00:52    Titel: Antworten mit Zitat

Öffne doch einfach mal ein einfaches Worddokument, in dem vieleicht nur ein Satzt steht ohne jegliche Formatierung, mit dem Texteditor. Dann siehst Du was für riesige Informationsmengen in einer solchen Datei drin sind. Das ist unglaublich.

Nur mal ein kleiner Auszug als Beispiel:
T i m e s N e w R o m a n 5?   € S y m b o l 3&?  ‡z € ÿ A r i a l

Obwohl ich alles in dem Dokument in Times New Roman geschrieben habe stehen noch die beiden Schriftarten drin, die ich auch in letzter Zeit mal benutzt hatte bei anderen Dokumenten.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Helli M.



Anmeldungsdatum: 20.12.2004
Beiträge: 29
Wohnort: Burgenland in Österreich

BeitragVerfasst am: 17.01.2005, 01:41    Titel: Antworten mit Zitat

Hi Euch!!!

Ja, ich habe ein Word.doc mit dem Editor geöffnet... wow, ich dachte, ich hätte nen knick in der Optik... zwinkern
Na, ist es denn dann vielleicht "besser", (weil einfacher) mal ein Programm zu schreiben, das halt dann mit rtf kann?
Ich kenn mich ja nicht so gut aus, und die weiterführenden links, die ich mir angesehen habe (vielen Dank dafür!!!), das schaff ich als Anfänger sicher nicht so schnell....das werde ich machen wenn:
Ja, wenn ich es schaffe, das QBasic mit rtf zurechtkommt, dann habe ich sicher mehr Erfahrungen gesammelt, und kann mich über was komplexeres trauen...
@ dreael:
Dieses VBS...hab ich das recht verstanden, dass das so eine Art "makro" ist?
Falls die Frage blöd war, sei bitte net bös!! verlegen
Wenn Du mir da das Gerüst schon hergestellt hast, dann brauch ich "nur" noch die Verarbeitung einfügen, oder??
Nochmal vielen Dank
Liebe Grüße
Helli
_________________
Wieso einfach, wenn's auch kompliziert geht?!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 17.01.2005, 09:03    Titel: Antworten mit Zitat

Helli M. hat Folgendes geschrieben:
Dieses VBS...hab ich das recht verstanden, dass das so eine Art "makro" ist?

Indirekt ja. Statt direkt einem Makro ausführen, verwenden wir hier den Windows Script Host (WSH) und instanzieren das Word als sog. Automatisierungsobjekt. Bei diesem Automatisierungsobjekt stehen uns aber auch sämtliche Methoden und Properties regulärer Word-Makros zur Verfügung.

Du kannst also sogar Deine gewünschten Schritte mal von Hand durchführen und mit dem Makrorecorder in Word aufzeichnen. Anschliessend lässt sich das Ganze in ein dynamisch erzeugtes .VBS wie oben gezeigt hineinpacken.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Helli M.



Anmeldungsdatum: 20.12.2004
Beiträge: 29
Wohnort: Burgenland in Österreich

BeitragVerfasst am: 17.01.2005, 16:44    Titel: Antworten mit Zitat

Hallo dreael!!!

Das klingt ja wirklich so, als ob ich das auch schaffen könnte!!!
So einen Makrorecorder... davon hab ich noch nie was gehört!
Aber ich versuch es mal, so wie Du gesagt hast!
Und dann hätte ich noch eine Frage, ich brauche ja dann auch das, was ich ausgeschrieben haben möchte, als library, denn als DATA ist es viel zu viel!!
Im Beispiel meines Freundes, der in seinen Büchern immer wieder Bibeltexte zitiert, müsste ich ja die ganzen Bibelstellen der ganzen Bibel für das Programm bereitstellen. Oder stell Dir vor, man möchte irgendwelche Paragraphen ausgeschrieben haben, oder sonst etwas, das man halt grade braucht....
Oder, man könnte vielleicht den Bibeltext in einer anderen rtf haben, auf den dann das Programm zugreift, und die beiden dann zusammenmixt sozusagen....
Das mit dem Makrorecorder aufzeichnen, meine ich... denn da müssten ja auch irgendwo diese Infos liegen, die dann eingefügt werden sollen.
Je mehr ich nachdenke, desto komplizierter kommt es mir vor, aber Ziele muß man sich ja stecken, sonst kommt man ja nie zu was!!! cool
Viele Grüße
Helli
_________________
Wieso einfach, wenn's auch kompliziert geht?!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 17.01.2005, 22:36    Titel: Antworten mit Zitat

Versuchen wir es mit einem konkreten Beispiel: Einfaches Suchen/Ersetzen, am Schluss Dokument unter neuem Namen speichern.
Zuerst zeichne ich mal mit dem Makrorecorder das Ganze auf. Wenn ich das Makro daraufhin bearbeite, bekomme ich etwas der Art
Code:
Sub Test_1()
'
' Test_1 Makro
' Makro aufgezeichnet am 17.01.2005 von dreael
'
    ChangeFileOpenDirectory "C:\DATEN\WORD\"
    Documents.Open FileName:="Quelldok.doc", _
        ConfirmConversions:=False, ReadOnly:=False, AddToRecentFiles:=False, _
        PasswordDocument:="", PasswordTemplate:="", Revert:=False, _
        WritePasswordDocument:="", WritePasswordTemplate:="", Format:= _
        wdOpenFormatAuto
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "Suchbegriff"
        .Replacement.Text = "neuer Text"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    ActiveDocument.SaveAs FileName:= _
        "DokumentNeu.doc", FileFormat:=wdFormatDocument _
        , LockComments:=False, Password:="", AddToRecentFiles:=True, _
        WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _
         SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _
        False
    ActiveDocument.Close
End Sub

All dies hübschen Anweisungen können wir natürlich auch vom Windows Script Host anwenden:
Code:
' Word mit Automatisierungsobjekt steuern

Option Explicit

Const wdReplaceAll = 2

Dim oWord, oDoc, oSel

Set oWord = CreateObject("Word.Application")
oWord.visible = True
Set oDoc = oWord.Documents.Open("C:\TEMP\Hans1.doc")
Set oSel = oDoc.Range
oSel.Select
oSel.Find.Text = "Hans"
oSel.Find.Replacement.Text = "Barbara"
oSel.Find.Execute ,,,,,,,,,,wdReplaceAll
Set oSel = Nothing
oDoc.SaveAs "C:\TEMP\Barbara1.doc"
oDoc.Close
Set oDoc = Nothing
oWord.Quit
Set oWord = Nothing

(habe ich noch als

http://beilagen.dreael.ch/QB/WORDMKR.VBS

zum Download bereitgestellt)

Diese Routine können wir nun sehr hübsch in QB einbetten:
Code:
' Word mit Automatisierungsobjekt aus QB heraus steuern

LINE INPUT "Quelldatei? ", q$
LINE INPUT "Zieldatei? ", z$
LINE INPUT "Alter Text? ", alt$
LINE INPUT "Neuer Text? ", neu$

OPEN ENVIRON$("TEMP") + "\~WORDMKR.VBS" FOR OUTPUT AS 1
PRINT #1, "Option Explicit"
PRINT #1, "Const wdReplaceAll = 2"
PRINT #1, "Dim oWord, oDoc, oSel"
PRINT #1, "Set oWord = CreateObject(" + CHR$(34) + "Word.Application" + CHR$(34) + ")"
PRINT #1, "oWord.visible = True"
PRINT #1, "Set oDoc = oWord.Documents.Open(" + CHR$(34) + q$ + ".doc" + CHR$(34) + ")"
PRINT #1, "Set oSel = oDoc.Range"
PRINT #1, "oSel.Select"
PRINT #1, "oSel.Find.Text = " + CHR$(34) + alt$ + CHR$(34)
PRINT #1, "oSel.Find.Replacement.Text = " + CHR$(34) + neu$ + CHR$(34)
PRINT #1, "oSel.Find.Execute ,,,,,,,,,,wdReplaceAll"
PRINT #1, "Set oSel = Nothing"
PRINT #1, "oDoc.SaveAs " + CHR$(34) + z$ + ".doc" + CHR$(34)
PRINT #1, "oDoc.Close"
PRINT #1, "Set oDoc = Nothing"
PRINT #1, "oWord.Quit"
PRINT #1, "Set oWord = Nothing"
CLOSE 1
SHELL "cscript //NoLogo " + ENVIRON$("TEMP") + "\~WORDMKR.VBS"
KILL ENVIRON$("TEMP") + "\~WORDMKR.VBS"

Auch hier steht das fertige Programm als

http://beilagen.dreael.ch/QB/WORD_MKR.BAS

zur Verfügung.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
ZaPPa



Anmeldungsdatum: 29.09.2004
Beiträge: 98
Wohnort: Wuppertal

BeitragVerfasst am: 18.01.2005, 01:54    Titel: Antworten mit Zitat

haha! grinsen diesma hab ich aber einen RTF2TXT Converter parat!!

....(schon relativ alt, und evtl. verbuggt...)....

Jah Bless
_________________
--- ICH BIN DAGEGEN! ---
Jet_X hat Folgendes geschrieben:
Es währe mir sehr geholfen wenn ihr mir Helfen könnt !


And remember: Schwund is immer!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 18.01.2005, 09:33    Titel: Antworten mit Zitat

dann solltest du vllt mal einen Link posten?
durchgeknallt
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Helli M.



Anmeldungsdatum: 20.12.2004
Beiträge: 29
Wohnort: Burgenland in Österreich

BeitragVerfasst am: 20.01.2005, 17:32    Titel: @ dreael Antworten mit Zitat

Hallo dreael!!!

Sorry, dass ich so lang gebraucht hab, um Antwort zu geben!!
Ich versuche alles zu lernen, zu verstehen, und für mein Problem anzupassen!!
Vielen Dank für die Programme zum laden!!
Du, damit komm ich schon gut weiter, und ich habe wieder viel gelernt!
Jetzt werde ich mich damit befassen, wie ich eine library erstellen kann, denn das Programm soll ja selber wissen WAS und WO es was ausschreiben soll!!
Was meinst Du, ist das jetzt der nächste Schritt, oder habe ich zuerst was anderes, worum ich mich kümmern sollte??
Ich freu mich schon auf Antwort!!
Liebe Grüße
Helli
_________________
Wieso einfach, wenn's auch kompliziert geht?!
Nach oben
Benutzer-Profile anzeigen Private Nachricht 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