copy ?

Nieuwe Liberty BASIC programmeurs kunnen hier om hulp vragen.

Moderators: anthonio, Abcott

copy ?

Berichtdoor ForNext » zo feb 07, 2010 10:41 am

Beste forumlezer(s),
Ik wil graag uit veiligheidsoverwegingen een backup maken van het databestand (random.file) op het moment dat ik dat bestand inlees in het programma om er data aan toe te voegen, van te wissen en/of in te wijzigen.
Met de instructies < print #handle, “!copy” > en < print #handle, “!paste” > kom ik er niet. En met < copy bestand.* bestand.bak > ook niet. Is daar een eenvoudige oplossing voor? Vast wel!

m.vr.gr.
Cursist LB Amstelveen
ForNext
 
Berichten: 60
Geregistreerd: za okt 27, 2007 9:40 am
Woonplaats: Amstelveen

Re: copy ?

Berichtdoor Gordon » zo feb 07, 2010 1:25 pm

Ik eenvoudigste manier is misschien
het renamen van het bestand. Maar dan ben je het
oude bestand kwijt.

Dus copieer je bestand naar een ander bestand met een andere naam.
Hier volgt eerst een demo met de copy functie van Windows.
Code: Selecteer alles
' CopyFileA Demo
' David Conner, 2003, public domain

input filename$

fName$ = DefaultDir$+ "\" +filename$
nName$ = "C:\tommy\"+ right$(fName$,len(fName$)-3)
result = mkdir(nName$)
print result

Print "Working..."
print

Calldll #kernel32, "CopyFileA",_
    fName$ as ptr,_
    nName$ as ptr,_
    bFailIfSucceed as long,_
    ret as long

print fName$ +" copied to " + nName$

end



Nu volgt dezelfde aktie nu geheel in Liberty BASIC stijl.

Gordon

p.s. zie volgende bericht.
Avatar gebruiker
Gordon
Site Admin
 
Berichten: 684
Geregistreerd: zo mei 22, 2005 12:50 am

Re: copy ?

Berichtdoor Gordon » zo feb 07, 2010 1:31 pm

Code: Selecteer alles
' CopyFileA Demo use to copy a whole Path to a Folder
' David Conner, 2003, public domain
' Gordon Rahman, 2003, public domain
' run in Default Dir please


dDrive$ = "C:\"
input "Source file please ?" ;sFile$
input "Destination Drive please ?"; dDrive$
dDrive$=left$(dDrive$,1)+":\"
input "Destination Folder please ?";dFolder$
if right$(dFolder$,1)<>"\" then dFolder$ = dFolder$ + "\"

fName$ = DefaultDir$+ "\" +sFile$
nName$ = dDrive$+ dFolder$ + right$(fName$,len(fName$)-3)

tName$ = nName$

        for t = 1 to len(tName$)

            if mid$(tName$,t,1) <> "\" then goto [nu]

            'else
            result = mkdir((left$(nName$,t))) ':print result
            'result 5 means Drive exists
            'result 183 means Folder already exists
            'result 3 means ERROR
            'result 0 means Folder created

[nu]    next t

Print "Working..."
print

'Calldll #kernel32, "CopyFileA",_
'    fName$ as ptr,_
'    nName$ as ptr,_
'    bFailIfSucceed as long,_
'    ret as long


open fName$ for input as #temp
    stream$=input$(#temp, lof(#temp))
close #temp

open nName$ for output as #save
    print #save, stream$
close #save

print fName$ +" copied to " + nName$


Gordon

end


Avatar gebruiker
Gordon
Site Admin
 
Berichten: 684
Geregistreerd: zo mei 22, 2005 12:50 am

Re: copy ?

Berichtdoor Gordon » zo feb 07, 2010 2:09 pm

Volledigheidshalve:

De commando's
#x "!copy" en #x "!paste"
gelden voor een texteditor control.
Met dergelijke commando's kun je een geselecteerde tekst
naar het klembord sturen of afhalen.

Gordon.
Avatar gebruiker
Gordon
Site Admin
 
Berichten: 684
Geregistreerd: zo mei 22, 2005 12:50 am

Re: copy ?

Berichtdoor ForNext » zo feb 07, 2010 10:57 pm

Gordon bedankt.
De laatste listing heb ik omgebouwd door de antwoorden op de vragen standaard op te nemen en de vragen over te slaan. Daarna heb ik de aangepaste listing opgenomen in de listing van het database bestand.
En het werkt daarbinnen precies zoals ik het voor ogen had.
Ik was even bang dat de instructie [nu] voor diverse notice-meldingen aanleiding zou geven, maar niets is minder waar.

Is er ergens een "programma/listing-database" voor dit soort van handige kleine problemen oplossende listings ?

m.vr.gr.
Cursist LB Amstelveen
ForNext
 
Berichten: 60
Geregistreerd: za okt 27, 2007 9:40 am
Woonplaats: Amstelveen

Re: copy ?

Berichtdoor Gordon » do feb 11, 2010 7:05 pm

Vele Liberty BASIC gebruikers hebben daarvoor het programma
CODEBANK van John Davidson geinstalleerd.
http://codebank.homeportwest.com/

Als je vele "snippets" hebt geef je dan een seintje?
Misschien kunnen we hier wat ruilen en aanvullen.

Gordon
Avatar gebruiker
Gordon
Site Admin
 
Berichten: 684
Geregistreerd: zo mei 22, 2005 12:50 am


Keer terug naar Beginner

Wie is er online

Gebruikers op dit forum: Geen geregistreerde gebruikers. en 1 gast

cron