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:

3 Probleme... [bin neu in qbasic]

 
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
rifl



Anmeldungsdatum: 05.01.2005
Beiträge: 1
Wohnort: Ebbs, Tirol, Ösis

BeitragVerfasst am: 05.01.2005, 09:56    Titel: 3 Probleme... [bin neu in qbasic] Antworten mit Zitat

Erstmal hallo an alle (die das hier lesen)

Ich habe bis jetzt hauptsächlich in Dos programmiert (vor allem Bootfähige CD-Roms) und will jetzt auf Quickbasic Umsteigen... bzw umschreiben:

Da gibt es folgende Probleme:

1.) Ramdrive.sys erzeugt ein Ramdrive - kann ich in Qbasic das auch einfach so machen z.B. so: D:\ramdrive.sys /30000 (größe) /512 /256 /e (typ)

2.) Ich habe bis jetzt nicht herausgefunden wie man Datein von einem Ort zum anderen kopiert z.B
die datei driver.bat von CD ins Ramdrive - wobei beide immer variable Laufwerksbuchstaben haben....

3.) fällt mir nicht mehr ein.... lächeln

Also erstmal Danke im Voraus,

mfg RiFl
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 05.01.2005, 12:39    Titel: Antworten Antworten mit Zitat

Hallo.

In QBASIC kannst du ein Ramdrive genauso machen wie in einer Batchdatei.
Allerdings musst du deine Befehle, die man in Batchdateien einfach so hinschreibt, bei QB in den Befehl SHELL "..." einfügen. Mit SHELL kann man quasi auf den DOS-Prompt zugreifen. Doof formuliert, aber hoffentlich verständlich... zwinkern

Eine Datei lässt sich auf seeehr viele Wege kopieren.

Es geht auch einfach, wenn auch unschön, mit SHELL:
Code:
SHELL "COPY BLA.BAT ..."


Viel schöner ist es, direkt mit QB zu kopieren.

Eine Batchdatei zum Beispiel so:
Code:
OPEN "A:\QUELLE.BAT" FOR INPUT AS #1
OPEN "C:\ZIEL.BAT" FOR OUTPUT AS #2
DO
 LINE INPUT #1, Zeile$
 PRINT #2, Zeile$
LOOP UNTIL EOF(1)
CLOSE #1
CLOSE #2


Wenn du alle möglichen Dateien kopieren willst, musst du das Ganze binär angehen.
Code:
OPEN "A:\QUELLE.EXE" FOR BINARY ACCESS READ AS #1
OPEN "C:\ZIEL.EXE" FOR BINARY ACCESS WRITE AS #2
EinByte$ = SPACE$(1)
DO
 GET #1,,EinByte$
 PUT #2,,EinByte$
LOOP UNTIL EOF(1)
CLOSE #1
CLOSE #2


Das geht prima, bei JEDER Art von Datei. Allerdings ist es bei großen Dateien recht langsam. Das Programm oben ein bisschen "performter" hier unten: zwinkern
Code:
PufferSize% = 16384
From$ = "C:\QUELLE.EXE"
To$ = "D:\ZIEL.EXE"
OPEN From$ FOR BINARY ACCESS READ AS #1
OPEN To$ FOR BINARY ACCESS WRITE AS #2
Puffer$ = ""
DO UNTIL LOC(1) = LOF(1)
IF LOF(1) - LOC(1) < Puffersize% THEN
Puffer$ = SPACE$(LOF(1) - LOC(1))
ELSE
Puffer$ = SPACE$(Puffersize%)
END IF
GET #1, , Puffer$
PUT #2, , Puffer$
LOOP
CLOSE #1
CLOSE #2


Möglicherweise enthalten die Codes noch Fehlerchen. Sie sind lediglich im Forumeingabedingens geschrieben. zwinkern
Aber die Funktionsweise sollte deutlich werden.

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
dreael
Administrator


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

BeitragVerfasst am: 05.01.2005, 20:51    Titel: Antworten mit Zitat

Die eigene Kopierroutine hat lediglich das Problem, dass die Zieldatei nicht dasselbe Modifikationsdatum erhält. Aber auch dieses Problem lässt sich lösen; siehe

http://forum.qbasic.at/viewtopic.php?t=71
http://beilagen.dreael.ch/QB/DATDEMO.BAS

In diesem Fall besonders einfach: Die Werte aus CX und DX muss man nicht einmal parsern/"zerhacken", sondern gibt sie einfach 1:1 dem INT21h/AX=5701-Systemaufruf weiter.

Übrigens ganz ähnlich kann man es mit den Attributen (Archiviert, System, Hidden, Readonly; DOS-Befehl ATTRIB) auch machen, so dass man perfekt geclonte Kopien erhält.
_________________
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