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:

Worddokumente aneinander hängen!

 
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
Iguan



Anmeldungsdatum: 14.11.2004
Beiträge: 28

BeitragVerfasst am: 19.10.2005, 18:22    Titel: Worddokumente aneinander hängen! Antworten mit Zitat

hi!
vielleicht könnt ihr mir weiterhelfen..


ich habe folgendes Problem:

ich habe sehr viele Worddokumente (z.B 001.doc, 002.doc, 003.doc.... 099.doc)

in diesen Worddokumenten habe ich verschiedene Schriftgrössen und auch verschiedene Schriftfarben verwendet... (darf sie also nicht in *.txt umwandeln, da sonst diese Daten verloren gehen)

nun möchte ich mit einem Programm, die Dokumente aneinander hängen, sodass ich schlussendlich ein einziges grosses Worddokument habe.
Das Programm soll immer wieder fragen, welches file das nächste ist, dass es anzuhängen hat.

im *.txt-Format wäre das kein Problem für mich zu proggen, aber vom Wordformat habe ich keine Ahnung!

Gibt es eventuell bereits schon ein solches Programm im Netz?
Oder könnt ihr mir vielleicht sagen, wie ich das in QB lösen könnte?


Vielen vielen Dank

Iguan
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 19.10.2005, 18:35    Titel: Antworten mit Zitat

Das Aneinanderhängen im .DOC-Format könntest du mit binärem Speicherzugriff probieren, ich weiß
aber nicht genau, ob das klappt, da die Windows-Programmierer bestimmt irgendeinen Header für's
.DOC-Format geschrieben haben, von dem es dann zwei geben würde...

Wie auch immer, hier mein Vorschlag, müsstest du aber noch testen, ob's klappt:
Code:

DIM BYTE AS STRING * 1

CLS
LINE INPUT "Zieldatei: "; zieldatei$

OPEN zieldatei$ FOR BINARY ACCESS WRITE AS #1

DO
 PRINT "Datei eingeben (zum Beenden Leereingabe)";
 LINE INPUT dateiname$
 IF RTRIM$(LTRIM$(dateiname$)) = "" THEN EXIT DO
 F = FREEFILE
 OPEN dateiname$ FOR BINARY ACCESS READ AS #F
  DO
   GET #F, , BYTE
   PUT #1, , BYTE
  LOOP UNTIL LOC(F) = LOF(F)
 CLOSE #F
LOOP

CLOSE #1
END


Diese Methode ist aber relativ langsam.

jb


Zuletzt bearbeitet von jb am 19.10.2005, 19:06, insgesamt 2-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Iguan



Anmeldungsdatum: 14.11.2004
Beiträge: 28

BeitragVerfasst am: 19.10.2005, 19:01    Titel: Antworten mit Zitat

Hi JB!


danke vielmals für deine Mühe..

aber wenn ich den Quellcode ausführe, dann kommt bei mir der fehler: Unverträgliche Datentypen, bei der Zeile mit dem GET




DIM BYTE AS STRING * 1


CLS
LINE INPUT "Zieldatei: "; zieldatei$

OPEN zieldatei$ FOR BINARY ACCESS WRITE AS #1

DO
PRINT "Datei eingeben (zum Beenden Leereingabe)";
LINE INPUT dateiname$
IF RTRIM$(LTRIM$(dateiname$)) = "" THEN EXIT DO
F = FREEFILE
OPEN dateiname$ FOR BINARY ACCESS READ AS #F
DO
GET #F, BYTE
PUT #1, BYTE
LOOP UNTIL LOC(F) = LOF(F)
CLOSE #F
LOOP

CLOSE #1
END
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 19.10.2005, 19:03    Titel: Antworten mit Zitat

Huups, es muss ja auch
Code:

GET #F, , BYTE
PUT #1, , BYTE

heißen... peinlich

Ich editiere das oben mal eben...

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



Anmeldungsdatum: 14.11.2004
Beiträge: 28

BeitragVerfasst am: 19.10.2005, 19:24    Titel: ?!?!?!?! Antworten mit Zitat

Hi jb!


danke vielmals für deine suuuuperschnelle Antwort!!!

ich habs ausprobiert... diesmal kam keine Fehlermeldung!

aber es hat trotzdem nicht so recht geklappt:

als Zieldatei habe ich folgendes eingegeben: "F:\ausgabe.doc"

und dann habe ich "F:\01.doc" und "F:\02.doc" eingegeben.

daraus entstand zwar die datei ausgabe.doc, aber wenn ich die öffne ist nur der inhalt von Datei "01.doc" drin. Merkwürdigerweise entspricht die dateigrösse in etwa beider dateien (01.doc und 02.doc) zusammen!

wir sind nahe dran!!!

gruss

Iguan
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 19.10.2005, 19:27    Titel: Antworten mit Zitat

Wie ich schon sagte, das Problem ist der Word-Header, der in der .DOC-Datei vorhanden ist.
Mein Vorschlag war nur die Quick'n'Dirty-Methode, damit das richtig klappt, müsste man das
.DOC-FOrmat auseinander nehmen...

Tut mir Leid, aber das wird dann schon ziemlich komplex...

/EDIT: Vielleicht hilft dir das hier weiter: Link

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



Anmeldungsdatum: 14.11.2004
Beiträge: 28

BeitragVerfasst am: 19.10.2005, 19:42    Titel: ... Antworten mit Zitat

Hi jb

ok.. dann muss ich es wohl lassen...
aber trotzdem vielen vielen Dank für deine Hilfe!!!


gruss

Iguan
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 19.10.2005, 20:29    Titel: Antworten mit Zitat

Der punkt,dass man nur die 1. datei "sieht", liegt wohl dran, dass im header der 1. datei eine dateilänge steht, diese müsste man höher setzen!
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Iguan



Anmeldungsdatum: 14.11.2004
Beiträge: 28

BeitragVerfasst am: 19.10.2005, 20:43    Titel: und wie mache ich das? Antworten mit Zitat

.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 19.10.2005, 20:46    Titel: Re: und wie mache ich das? Antworten mit Zitat

Iguan hat Folgendes geschrieben:
.



SPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM
Autsch! Hammer Hammer Hammer Hammer Hammer Hammer Hammer Hammer Deal gemacht
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Iguan



Anmeldungsdatum: 14.11.2004
Beiträge: 28

BeitragVerfasst am: 19.10.2005, 20:57    Titel: nein, im titel steht was... musste ich so machen, da (nt) Antworten mit Zitat

verlegen geschockt
nein, im titel steht was... musste ich so machen, da (nt) nicht geht

Zunge rausstrecken
aber jetzt spass beiseite... kennst du ne lösung für mein Problem? cool
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 19.10.2005, 21:09    Titel: Antworten mit Zitat

mein vorschlag wäre: schau dir die binär-struktur eine word-datei an. das könnte so aussehn;:

WORD215ß8filafjABCBABCABf9p3482p9t83tp29t823p9Hier beginnt text!


dieser buchstaben-salat ist der kopf. den müsstest du irgendwie analysieren....dann müsstest du bei der 2. datei den kopf entfernen und die dateilängen zusammenhzähen....

ich hab schonmal in so eine word-datei reingeschaut, und das sah aus wie html-code, ich glaub, dass da z.B. <b> sachen wie |b|aussah...
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

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

Das war dann RTF und nicht DOC. lächeln
_________________

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
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 22.10.2005, 17:19    Titel: Antworten mit Zitat

Hallo!

Bei jb's Lösung werden die Dateien zwar aneinander gehängt, jedoch gibt's meiner Meinung nach eine Art Footer. Der grenzt die Daten ungewollt ab. Das gleiche Prinzip wäre es, wenn du mehrere Daten, die du evtl für ein Spiel brauchst (Grafiken, Sounds, Highscore, ...) hinten dranhängst. Das EXE-Programm würde es nicht stören - denn es "weiß" wo es zu Ende ist.
Bsp: Du könntest die Daten mit SEEK auslesen, was aber nicht deine Frage war. Galt nur zur Erklärung, warum die Methode nicht funktioniert.

Greetings,
Mao
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


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

BeitragVerfasst am: 22.10.2005, 18:18    Titel: Antworten mit Zitat

QB ist für diese Aufgabe eindeutig das falsche Werkzeug, denn sich mit allen Details des Word-Dateiformats auseinandersetzen zu wollen sprengt schlicht und einfach jeglichen Rahmen, was das Verhältnis Aufwand zu Ertrag betrifft.

Befasse Dich daher lieber mit Word-Makros. Ebenfalls für solche Dinge immer gut: VBScript mit dem Windows Script Host unter Verwendung der ActiveX-Automatisierungsobjekte von Office. Im MSDN-Bereich sind sonst alle Objekte, Properties und Methoden beschrieben.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
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