filhantering i qb?

Elektronik- och mekanikrelaterad mjukvara/litteratur. (T.ex schema-CAD, simulering, böcker, manualer mm. OS-problem hör inte hit!)
Användarvisningsbild
grym
EF Sponsor
Inlägg: 17580
Blev medlem: 16 november 2003, 12:22:57
Ort: i det mörka småland

filhantering i qb?

Inlägg av grym »

håller på att rensa i testprogrammet för adkortprojektet som är i en annan tråd

en sak tar onödigt lång tid i qbasic, och det är att kopiera en fil
har kollat och provat men hittar inget vettigt sätt att automatiskt kopiera en fil i qb eller gå ut i dos, kopier och tillbaka utan att röra tangentbordet, missar säkert något riktigt självklart

och , nix, inga andra programspråk, jag kommer fortsätta annvända qb, programmet ändras vartefter mätningarna utförs och det fungerar mycket bra :wink:
sodjan
EF Sponsor
Inlägg: 43247
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

SHELL "COPY en_fil en_ny_fil" ?
Användarvisningsbild
grym
EF Sponsor
Inlägg: 17580
Blev medlem: 16 november 2003, 12:22:57
Ort: i det mörka småland

Inlägg av grym »

ger det jobbiga "press any key to continue"
svårt att automatisera filkopieringen
sodjan
EF Sponsor
Inlägg: 43247
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Är det QB eller COPY som ger det meddelandet ?

Om det är COPY, prova med :

SHELL "COPY en_fil en_ny_fil /Y"
/Y Suppresses prompting to confirm you want to overwrite an
existing destination file.
Om det nu var *det* problemet... :-)
Användarvisningsbild
grym
EF Sponsor
Inlägg: 17580
Blev medlem: 16 november 2003, 12:22:57
Ort: i det mörka småland

Inlägg av grym »

den gör vad den ska , kopierar filen och sedan vill den tillbaka till qb programmet men vill först ha en knapptryckning

basic är suveränt för att göra program man ska ändra i hela tiden men filhanteringen är usel,
Användarvisningsbild
Jeppsson
EF Sponsor
Inlägg: 810
Blev medlem: 3 oktober 2005, 18:00:43
Ort: Karlskrona

Inlägg av Jeppsson »

För länge sedan när man jobbade i DOS så vet jag att det fanns något man kunde skriva efter vissa kommando för att slippa svara på bekräftningsfrågor...

Man kunde skriva typ "format c: /autotest" och då slapp man svara på alla jobbiga kontroll frågor, den formatera bara på...

Just detta kommado skall man inte prova... :oops: :wink:

Men din filkopiering i shell/dos-promt kanske kan fungera utan kontrollfrågor!

"COPY en_fil en_ny_fil /autotest" :pray:

Meddela om det fungerar eller ej, annars får man börja fintänka lite igen :humm:
Användarvisningsbild
Greensilver
Inlägg: 1305
Blev medlem: 21 januari 2005, 21:24:57
Ort: Sverige
Kontakt:

Inlägg av Greensilver »

Jag använder mig av:
FileCopy source, destination
Användarvisningsbild
JimmyAndersson
Inlägg: 26568
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Inlägg av JimmyAndersson »

Jag hittade v1.01 av FileCopy. Du kanske har en nyare, men denna klarar inte så många parametrar:

Kod: Markera allt

Non-locking FileCopy version 1.01
Copyright (c) 2002 SoftTree Technologies, Inc.

Usage: FILECOPY source destination [/M mode] [/S start] [/L length]

Command line parameters:
  source - source file name
  destination - destination file name
Optional parameters:
  mode - share mode, one of the following: 1, 2
         mode 1 allows file read/write operations, this is the default mode
         mode 2 allows file read operations only, prevents writes
  start - starting position, default is 0 which is to start copying from
         the begining of the source file
  length - number of bytes to copy, default is to copy entire file;
         if start + length value exceeds file size, FILECOPY copies
         available bytes only
Tyvärr ingenting om "tyst" kopiering.
Det är inte så att det fungerar att skicka resultatet av kopieringen till "ingenstans"?
Dvs: FILECOPY source destination >NIL:
Det är bara en chansning, men det kanske är värt att prova iallafall.
sodjan
EF Sponsor
Inlägg: 43247
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Jag tror inte att det är COPY i sig, utan QB45 miljön som säger
"press any key" efter ett SHELL kommando.

Vad händer om man gör "SHELL DIR" ??
Användarvisningsbild
grym
EF Sponsor
Inlägg: 17580
Blev medlem: 16 november 2003, 12:22:57
Ort: i det mörka småland

Inlägg av grym »

visst är det qb som vill att man ska trycka på en tangent för att komma vidare

filer kopieras och dir visar vad den skall sedan kommer att man ska trycka på en knapp, antagligen jättebra om man sitter vid datorn och vill se något på skärmen, men uselt om man vill göra något via automatik

samm sak om man bara skriver shell, då kommer man ut till dospromt och kan göra vad man vill , när man är färdig skriver man exit och får samma tryck på knappen meddelande

på något sätt borde man kunna komma runt det
Användarvisningsbild
JimmyAndersson
Inlägg: 26568
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Inlägg av JimmyAndersson »

Kanske om du kopierar filen i QBasic. Eller närmare bestämt läser in filen (som ska kopieras) som en sträng och sparar i en ny fil.


Hittade en sajt som löst det på ett annat sätt, men som troligen inte fungerar i ditt fall, men jag kan ju berätta ändå: :)
De hade gjort en bat-fil som först startar QBasic-programmet. När man sedan ska kopiera filen så avslutas QBasic-programmet och bat-filen fortsätter på nästa rad, dvs genom att kopiera filen. Efter det så startas QBasic-programmet igen. Dvs såhär:

bat-filen:

qbasic /run program.bas
copy härifrån hit
qbasic /run program.bas


För att Qbasic-programmet skulle avslutas så använde de kommandona CLOSE och SYSTEM när användaren valde att kopiera.

(QBasic-programmet startas alltså inte genom att man startar QBasic manuellt. Man kör bara bat-filen.)


Detta känns ändå som en lite omständig lösning, men i vissa fall kan det säkert fungera bra.
Användarvisningsbild
grym
EF Sponsor
Inlägg: 17580
Blev medlem: 16 november 2003, 12:22:57
Ort: i det mörka småland

Inlägg av grym »

filkopiering med hjälp av qbasic fungerar, bara till att läsa en fil och skriva til den andra, men det tar ordentligt med tid

PRINT "kopierar bildfilen"
OPEN "mall100b.bmp" FOR BINARY AS #1
OPEN "out.bmp" FOR BINARY AS #2
DO WHILE NOT EOF(1)
GET #1, , a
PUT #2, , a
LOOP
CLOSE #1
CLOSE #2

kopiera en 3 Mb fil tar ca 30 sekunder och är det som tar mest tid i hela programmet
Användarvisningsbild
baron3d
EF Sponsor
Inlägg: 1353
Blev medlem: 1 oktober 2005, 23:58:43
Ort: Torestorp

Inlägg av baron3d »

Har flera gånger använt SHELL.... med COPY och andra program UTAN några "press any key".
Har kört programmen i DOS5, 6 och win95 och win 98 utan problem.
Användarvisningsbild
grym
EF Sponsor
Inlägg: 17580
Blev medlem: 16 november 2003, 12:22:57
Ort: i det mörka småland

Inlägg av grym »

hur gör du då ? ?
Användarvisningsbild
baron3d
EF Sponsor
Inlägg: 1353
Blev medlem: 1 oktober 2005, 23:58:43
Ort: Torestorp

Inlägg av baron3d »

Några exempel

SHELL "copy " + mainfile$ + " ASMTMP.ASM"
SHELL "IF NOT EXIST ASMTMP.ASM COPY A.A ASMTMP.ASM"
SHELL "del a.a"
SHELL "copy asmtmp.asm " + directo$ + fil$ + ".asm"
Skriv svar