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:

Problem mit INPUT$(#1,1) und PRINT #1,XXX$

 
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
-schumi-



Anmeldungsdatum: 28.10.2009
Beiträge: 131
Wohnort: Südbayern

BeitragVerfasst am: 01.11.2009, 19:54    Titel: Problem mit INPUT$(#1,1) und PRINT #1,XXX$ Antworten mit Zitat

Ich hab ein problem mit folgendem code:

OPEN "zu_kopierende_datei" FOR INPUT AS #1
OPEN "zieldatei" FOR OUTPUT AS #1
DO
zeichen$=INPUT$(1,#1)
PRINT #1,zeichen$;
LOOP UNTIL EOF(1)

der shell-befehl zum kopieren hilft mir hier leider nicht weiter, weil der ASCII-code von zeichen$ über die serielle schnittstelle an einen zweiten pc gesendet wird, der mithilfe von PRINT #1,zeichen$; den ASCII-code in ein zeichen umwandelt und ihn dann in eine datei schreibt. das prinzip ist im grunde aber das selbe wie der obige code.

Jetzt das problem:

mit *.txt-dateien funktioniert das ganze auch problemlos, aber kopierte *.exe- oder *.zip-dateien kann ich nicht verwenden.

woran liegt das und wie kann ich das problem beheben?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 01.11.2009, 20:50    Titel: Antworten mit Zitat

Hallo,

ich weiß zwar nicht warum das so ist, aber ich glaube schon bemerkt zu haben, dass EOF(n) das Ende bei manchen Dateitypen zu früh erkennt und in deinem Beispiel die Daten deshalb unvollständig kopiert werden. Hast du die Größen von Quell- und Zieldatei schon verglichen?

Du könntest es mal so versuchen:

Code:
DIM zeichen AS STRING * 1

OPEN "quelldatei" FOR BINARY AS #1
OPEN "zieldatei" FOR BINARY AS #2

FOR byte& = 1 TO LOF(1)
 GET #1, byte&, zeichen
 PUT #2, byte&, zeichen
NEXT

CLOSE #1
CLOSE #2


Gruß
Skilltronic
_________________
Elektronik und QB? www.skilltronics.de !
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
-schumi-



Anmeldungsdatum: 28.10.2009
Beiträge: 131
Wohnort: Südbayern

BeitragVerfasst am: 03.11.2009, 19:38    Titel: es hat funktioniert Antworten mit Zitat

Vielen dank für den tipp!! grinsen
Nach oben
Benutzer-Profile anzeigen Private Nachricht 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