Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: problem z FileCopy
anonim




Typ: Nie zarejestrowany
problem z FileCopy

Jestem zielony w Vb więc sorry za proste pytanie :
Nie działa mi funkcja FileCopy
Przy uruchamianiu programu wypisuje :
"Invalid use of property"
- nie wiem co mam nie tak :
Private Sub kopiuj_Click()
FileCopy "c:\plik.txt", "c:\kopia.txt"
End Sub


05-12-2003 15:45
  
mikmas
From Łódź Stadt




Typ: neutral
Postów: 772
Zarejestrowany: Apr 2003
dziwne :/

Skopiowalem Twoj post, wkleilem do VB i stworzylem plik "plik.txt" z zawartoscia "costam", no i wszystko dziala


_____________________________________________
4C;65;70;69;65;6A;20;62;79;9C;20;73;69;EA;20;
62;61;72;64;7A;69;65;6A;20;73;6B;6F;6E;63;65;
6E;74;72;6F;77;61;B3;20;6E;61;20;6F;64;70;6F;
77;69;65;64;7A;69;2C;20;61;20;6E;69;65;20;6E;
61;20;72;6F;7A;73;7A;79;66;72;6F;77;79;77;61;
6E;69;75;20;3A;50

05-12-2003 16:08
Pokaż profil mikmas  Wyślij email do mikmas   Odwiedź stronę mikmas       3632553
losmac
"profesorek"




Typ: neutral
Postów: 758
Zarejestrowany: May 2003
???

Tłumacząc komunikat: "Nieprawidłowe użycie właściwości", można się domyślać, że:
- procedura jest źle wywoływana,
- plik, który kopiujesz nie istnieje,
- plik docelowy już istnieje.
Ja to bym zrobił tak:

Private Sub kopiuj_Click()
    KopiujPlik "c:\plik.txt", "c:\kopia.txt"
End Sub

Private Sub KopiujPlik(zrodlowy As String, docelowy As String)
If Dir(zrodlowy)= "" Then
    MsgBox "Plik źródłowy nie istnieje!", vbExclamation, "Ostrzeżenie"
    Exit Sub
End If

If Dir(docelowy)<> "" Then
    MsgBox "Plik docelowy już istnieje!", vbExclamation, "Ostrzeżenie"
    Exit Sub
End If

FileCopy zrodlowy, docelowy

End Sub


To tylko przykład, ale popatrz, że zapobiegasz dwóm najczęstszym błędom.


_____________________________________________
POSTULATY STARUSZKA:
1) Ludzie, dbajcie o polszczyznę!!!
2) Ludzie, zadawajcie kompletne pytania, a nie rzucacie ochłapy i trzeba się domyślać o co chodzi!!!

Powodzenia
Maciej Łoś

05-12-2003 22:10
Pokaż profil losmac  Wyślij email do losmac   Odwiedź stronę losmac  
anonim




Typ: Nie zarejestrowany
nowy problem - poważniejszy :-(

Dzięki za odpowiedź - przy testowaniu tego FileCopy sprawdziłem wszystkie możliwosci o których napisałeś ale mimo to nie chciało działać.

Ostatecznie przepisałem kawałek kodu i zatrybiło.
Natomiast pojawił się nowy problem(o czym dalej) :
poniżej zamieszczam kod aplikacji (śledzi ona jakiś plik i jesli ulegnie on modyfikacji to składuje go w danym katalogu)

Public plik_wejsciowy As String
Public plik_docelowy As String
Public plik As String
Public NewDate As Date
Public ModDate As Date
Public MyDate As String
Public msg As String

Private Sub Form_Load()
On Error Resume Next
Dim FileHandle%
plik = "C:\test\path.txt"
FileHandle% = FreeFile
Open plik For Input As #FileHandle%
Line Input #FileHandle%, plik_wejsciowy
Close #FileHandle%
If (plik_wejsciowy <> "" Then
txtPlik1.Text = plik_wejsciowy
Timer1.Enabled = True
Else
Timer1.Enabled = False
lblEkran.Caption = "Wybierz plik do śledzenia"
End If
End Sub

Private Sub Timer1_Timer()
If (IsEmpty(plik_wejsciowy)) Then
msg = "Nie wybrano pliku"
MsgBox msg
Else
NewDate = FileDateTime(plik_wejsciowy)
    If (NewDate <> ModDate) Then
    MyDate = Time
    MyDate = Replace(MyDate, ":", "-"
    plik_docelowy = "C:\test\wersja " & MyDate & ".txt"
    FileCopy plik_wejsciowy, plik_docelowy
    ModDate = FileDateTime(plik_wejsciowy)
    lblEkran.Caption = "Zapisano plik o nazwie " & plik_docelowy
    Else
    lblEkran.Caption = "Śledzony plik nie zmienił swojej zawartości"
    End If
End If
End Sub

Private Sub wybierz_Click()
Dim FileHandle%
  With CommonDialog1
      .DialogTitle = "Wybierz plik"
      .Filter = "pliki tekstowe (*.txt)|*.txt|wszystkie pliki (*.*)|*.*"
      .ShowOpen
      If .FileName <> "" Then
        plik_wejsciowy = .FileTitle
        txtPlik1.Text = .FileName
        ModDate = FileDateTime(plik_wejsciowy)
        lblEkran.Caption = "Śledzony plik to " & plik_wejsciowy
        FileHandle% = FreeFile
        Open plik For Output As #FileHandle%
        Print #FileHandle%, txtPlik1.Text
        Close #FileHandle%
        Timer1.Enabled = True
      End If
  End With
End Sub


To wszystko działa dobrze u mnie na kompie , ale jak testowałem to na innym kompie to wywaliło błąd
że nie można zainicjalizować CommonDialog i że może być za mało pamięci ( 128MB , bez innych uruchomionych aplikacji)
Jak to można naprawić ?
Albo jeśli istnieje jakiś prostszy sposób tego co chce zrobić to jaki ???

05-12-2003 23:00
  
losmac
"profesorek"




Typ: neutral
Postów: 758
Zarejestrowany: May 2003
biblioteki

Wszystkiemu winne są biblioteki VB.
Kiedy kompilujesz program do postaci wykonywalnej (exe), to taki exek korzysta z zainstalowanych u Ciebie bibliotek. Aby Twój program działał np. u kumpla, który nie ma bibliotek VB, musisz je u niego zainstalować.
Na tej stronie znajdź aplikację FileAnalizer (miniFTP), ściągnij i użyj na swoim exeku. FileAnalizer podpowie Ci jakie biblioteki musisz zainstalować u kumpla, by zadziałało.

Myślę, że nie chodzi tu o problem z pamięcią.


_____________________________________________
POSTULATY STARUSZKA:
1) Ludzie, dbajcie o polszczyznę!!!
2) Ludzie, zadawajcie kompletne pytania, a nie rzucacie ochłapy i trzeba się domyślać o co chodzi!!!

Powodzenia
Maciej Łoś

06-12-2003 01:31
Pokaż profil losmac  Wyślij email do losmac   Odwiedź stronę losmac  
anonim




Typ: Nie zarejestrowany

Zrobiłem , tak jak powiedziałeś .
Ta aplikacja wykazała że mój plik potrzebuje :
msvbvm60.dll
vba6.dll
comdlg32.ocx

Ściągnąłem też programik Inno Setup i zrobiłem nim setup'a , dołączając wymienione biblioteki.
Wszystko instaluje na drugim kompie ,jest ok, a po uruchomieniu aplikacji i naciśnięciu buttona dalej wyskakuje ten sam błąd :
Run-time error '32765'
The common dialog function failed during the initialization. This error often occurs when insufficient memory is available.

Nie wiem jak to naprawic bo na moim kompie wszystko działa jak trzeba,a też nie uważam żeby pamięć miała z tym cos wspólnego

06-12-2003 11:55
  
losmac
"profesorek"




Typ: neutral
Postów: 758
Zarejestrowany: May 2003
hmmm..........

Ok, wygląda na to, że zrobiłeś wszystko...
A czy zarejestrowałeś biblioteki programem regsrv32? Znajduje się on w katalogu system32 windowsa.


_____________________________________________
POSTULATY STARUSZKA:
1) Ludzie, dbajcie o polszczyznę!!!
2) Ludzie, zadawajcie kompletne pytania, a nie rzucacie ochłapy i trzeba się domyślać o co chodzi!!!

Powodzenia
Maciej Łoś

06-12-2003 20:01
Pokaż profil losmac  Wyślij email do losmac   Odwiedź stronę losmac  
anonim




Typ: Nie zarejestrowany
tutorial

Dzięki za odpowiedzi.
Net mi nie działa od kilku dni wiec nie bardzo moge dyskutować , a przez modem bez sensu.
Może poleciłbyś mi jakąś stronke gdzie mogę znaleźć przewodnik na temat tworzenia instalatora do programow VB ( i nie tylko) i rozwiązywaniu wszelkich problemów z tym związanych.
thnx

09-12-2003 20:35
  
losmac
"profesorek"




Typ: neutral
Postów: 758
Zarejestrowany: May 2003
skorzystaj z bezplatnego Inno Setup'a

Skorzystaj z bezpłatnego Inno Setup'a. To najlepsze wyjście. Ten programik ma naprawdę wiele ciekawych funkcji, tylko trzeba się w niego "wczytać". Kilka wspaniałych przykładów jest dołączonych automatycznie podczas instalacji. Nie znam lepszego bezpłatnego narzędzia o TAK WIELKICH możliwościach. Zdecydowanie polecam Inno Setup!

Jak chcesz mieć polski interfejs to daj znać mi na maila. Podeślę Ci pliczek.

Oto link do stronki autora:
http://www.jrsoftware.org/isinfo.php

AAAAAAAAA.........

Byłbym zapomniał, autor programu zadbał też o newsgroup'y. Jak masz pytania i znasz angielski, wiele się można dowiedzieć...


_____________________________________________
POSTULATY STARUSZKA:
1) Ludzie, dbajcie o polszczyznę!!!
2) Ludzie, zadawajcie kompletne pytania, a nie rzucacie ochłapy i trzeba się domyślać o co chodzi!!!

Powodzenia
Maciej Łoś

10-12-2003 01:32
Pokaż profil losmac  Wyślij email do losmac   Odwiedź stronę losmac  
Wszystkich odpowiedzi: 8 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1