mojaSymfonia FORUM
https://forum.mix-soft.pl/

Proste operacje na plikach - AmBasic
https://forum.mix-soft.pl/viewtopic.php?f=15&t=904
Strona 1 z 2

Autor:  artur17 [ 2009-06-08, 14:18 ]
Tytuł:  Proste operacje na plikach - AmBasic

Czy da radę w AmBasicu robić takie proste operacje na pliku jak:

- kopiowanie pliku w inne miejsce na dysku;
- przenoszenie pliku w inne miejsce na dysku;
- kasowanie pliku itp...?

Autor:  rafal [ 2009-06-08, 18:24 ]
Tytuł: 

Kod:
dispatch fso = "Scripting.FileSystemObject"

// kasownie pliku
fso.deleteFile("c:\\test.txt")

// kopiowanie pliku
fso.copyFile("c:\\test.txt","d:\\test.txt")

// przenoszenie pliku
fso.moveFile("c:\\test.txt","d:\\test.txt")

Autor:  artur17 [ 2009-06-09, 08:10 ]
Tytuł: 

Dziękuję... :)

Autor:  Jarek75 [ 2009-06-15, 09:03 ]
Tytuł: 

Ambasic chyba nie obsługuje kopiowania. A poza tym:
delete file xxxx
rename (xxx, yyy)

mkdir(xxxx)
find file xxxx
find next file
append ...

Piszę na podstawie helpa. Coma lepiej unikać, bo w ambasicu nie mamy obsługi błędów. Poniższy program wywala się na linii 6.
Kod:
dispatch fso = "Scripting.FileSystemObject"

delete file "c:\\test.txt"
delete file "c:\\test.txt"

fso.deleteFile("c:\\test.txt")
fso.deleteFile("c:\\test.txt")

Autor:  rafal [ 2009-06-15, 10:42 ]
Tytuł: 

Jarek75 pisze:
[...]Coma lepiej unikać, bo w ambasicu nie mamy obsługi błędów. Poniższy program wywala się na linii 6.
Kod:
dispatch fso = "Scripting.FileSystemObject"

delete file "c:\\test.txt"
delete file "c:\\test.txt"

fso.deleteFile("c:\\test.txt")
fso.deleteFile("c:\\test.txt")


Przed wykonaniem operacji należy sprawdzić czy plik istnieje
Kod:
dispatch fso = "Scripting.FileSystemObject"
if fso.FileExists("c:\\test.txt")
fso.deleteFile("c:\\test.txt")
endif

if fso.FileExists("c:\\test.txt")
fso.deleteFile("c:\\test.txt")
endif


Autor:  zz [ 2017-10-18, 00:54 ]
Tytuł:  Re: Proste operacje na plikach - AmBasic

ale jeśli nie mam "c:\\test.txt"


w zał. kodzie polecenie delete file sPlik nie kasuje

Kod:
string sPlik, sMaska = "c:\\dane\\*.txt"
sPlik = find file ( sMaska )
while sPlik
message sPlik
   delete file sPlik
     sPlik = find next file
wend

Autor:  zz [ 2017-10-18, 13:57 ]
Tytuł:  Re: Proste operacje na plikach - AmBasic

Problem jest chyba w tym, że handel trzyma plik
mogę go jakoś zamknąć przed skasowaniem ?

Autor:  rafal [ 2017-10-18, 14:44 ]
Tytuł:  Re: Proste operacje na plikach - AmBasic

podany wyżej kod działa.
pytanie czy to jest cały kod, który testujesz lub co tworzy (i ewentualnie trzyma) plik.

Autor:  zz [ 2017-10-18, 21:58 ]
Tytuł:  Re: Proste operacje na plikach - AmBasic

'obrabiam' plik,
w pętli wrzucam poszcz. linie do bufora itd.

Autor:  rafal [ 2017-10-18, 22:55 ]
Tytuł:  Re: Proste operacje na plikach - AmBasic

No to po obrobieniu zamykaj. Close(plik)

Autor:  zz [ 2017-10-19, 12:47 ]
Tytuł:  Re: Proste operacje na plikach - AmBasic

a jak znaleźć numer pliku na podst. jego nazwy?
(mam błąd 'niemożliwa konwersja string na int')

Autor:  rafal [ 2017-10-19, 12:50 ]
Tytuł:  Re: Proste operacje na plikach - AmBasic

jaki numer?
jak masz błąd pokaż kod.

Autor:  zz [ 2017-10-19, 14:12 ]
Tytuł:  Re: Proste operacje na plikach - AmBasic

Kod:
// o każdej pełnej godzinie
string ostatnie_wykonanie = "00"

int sub OnTimer()
string sPlik, sMaska = "c:\\dane\\*.txt"
   if mid(time(),1,2) != ostatnie_wykonanie then   
      ostatnie_wykonanie = mid(time(),1,2)
      sPlik = find file ( sMaska )
      while sPlik
         wywolanie_procedury_z_parametrem(sPlik)
//         close(sPlik)
         delete file sPlik
           sPlik = find next file
      wend
   endif
   OnTimer = 0
endsub

Autor:  rafal [ 2017-10-19, 15:53 ]
Tytuł:  Re: Proste operacje na plikach - AmBasic

No i wazne co robisz tu

Kod:
    wywolanie_procedury_z_parametrem(sPlik)   

Autor:  zz [ 2017-10-20, 07:52 ]
Tytuł:  Re: Proste operacje na plikach - AmBasic

Ładuję poszcz. linie do bufora i obrabiam.
wyszukuję i usuwam fragmenty tekstu (czyli zmieniam zawartość pliku, o tym nie pomyślałem)
co mogę zrobić?
nie muszę zapisywać obrobionego pliku, potrzebne informacje mam już wyciągnięte

Strona 1 z 2 Strefa czasowa UTC+1godz. [letni]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/