Solved

Filecopy

Posted on 2004-03-29
22
2,337 Views
Last Modified: 2010-08-05
Hi everyone
I use vb6 and the filecopy statement to copy a zipped mdb file over isdn routers.
Are there any faster filecopy functions available in vb6 , I know there are possibilities to copy faster when I have windows programs that copy the same file in half the time. Is it also possible to get a event triggered to se how much of the file has been copied so I can make a progressbar for that spesifict file??

0
Comment
Question by:haggmar
  • 10
  • 9
22 Comments
 
LVL 19

Expert Comment

by:Melih SARICA
Comment Utility
if u wanna use ur own progress bar u must copy ur file with codes... block by block

u can use Ftp upload or u can use Internet functions to get or put files to other Computers...

o can read file in to a stream  adn write it to the target locatiion .. and u can control the progress...

0
 

Author Comment

by:haggmar
Comment Utility
ftp is not an option because this is not over the internet This is a Headquarter that distributes prices and information to all its stores. the stores do not have a webserver so i only ping the stores and copy the files over via intranet

I need som sample code


0
 
LVL 19

Expert Comment

by:Melih SARICA
Comment Utility

Ok .. then

create a file copy Procedure
  in procedure
  load ur source file in to a file stream ..
  and pump  ur source in to a target file stream ..
  tagret file stream must  be created in target folder..
   
  u can pump ur stream in small amounts of data .. and u can set ur progress bar while pumping data ..

  each time u pump .. increase the value of the progress bar

 u can use scripting.filesystemobject
0
 

Author Comment

by:haggmar
Comment Utility
ok do tou have any sample code for this, i have never uses the scripting.filesystemobject before
0
 
LVL 19

Expert Comment

by:Melih SARICA
Comment Utility

here is a brief example
   
Dim msourObj As New Scripting.FileSystemObject
Dim mtargObj As New Scripting.FileSystemObject

Dim msourceFile As TextStream
Dim mtargetFile As TextStream


Set msourceFile = msourObj.OpenTextFile("c:\try.txt", ForReading, False)
Set mtargetFile = msourObj.CreateTextFile("\\192.168.33.11\c$\trycopy.txt", True, false)

counter = 0
While Not msourceFile.AtEndOfStream
   
   mtargetFile.WriteLine (msourceFile.ReadLine)
   counter = counter + 1
   MsgBox (Str(counter))
Wend

 
0
 

Author Comment

by:haggmar
Comment Utility
hmmmm
will this only work for text files??

i am copying textfiles and zipfiles

0
 
LVL 19

Expert Comment

by:Melih SARICA
Comment Utility
Try 4 zip files...  if it doesnt work 4 zip files.. use standart VB openfile command for them
read in binary mode..
and write to a source file in binary mode again

0
 

Author Comment

by:haggmar
Comment Utility
ok
u have sample code for that?
0
 
LVL 19

Expert Comment

by:Melih SARICA
Comment Utility
Dim tempvar(2048) As Byte
Open "c:\try.rar" For Binary As #1
Open "\\192.168.33.11\c$\try.rar" For Binary As #2
counter = 0
filelength = LOF(1)
dsize = CInt(filelength / 2048) - 1
For cnt = 1 To dszie
 Get #1, 2048, tempvar
 Put #2, , tempvar
 counter = counter + 1
 Next cnt
remainder = CLng(LOF(1) - (CLng((filelength / 2048) - 1) * 2048))
Get #1, remainder, tempvar
Put #2, remainder, tempvar

Close #1
Close #2
0
 

Author Comment

by:haggmar
Comment Utility
doesnt work
the zipfile is corrupted after copying with this function
0
How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

 
LVL 9

Expert Comment

by:bhagyesht
Comment Utility
without a progress bar
"cmd.exe /c copy <source filename with path> <destination file name>
Bhagyesh Trivedi
0
 
LVL 19

Expert Comment

by:Melih SARICA
Comment Utility

i did not try it..
   change this  part

remainder = CLng(LOF(1) - (CLng((filelength / 2048) - 1) * 2048))
Get #1, remainder, tempvar
Put #2, , tempvar



0
 

Author Comment

by:haggmar
Comment Utility
sorry
still the same error when opening the zipfile after copying

cannot open file: it does not appear to be a valid archive. If you downloaded this file, try downloading the file again.

the sourcefile work just fine

0
 
LVL 19

Expert Comment

by:Melih SARICA
Comment Utility

In this Code error  is  at the end..
try this instead

remainder = CLng(LOF(1) - (CLng((filelength / 2048) - 1) * 2048))
dim tmpdata(remainder)

  Get #1, remainder, tmpdata
  Put #2, , tmpdata
0
 

Author Comment

by:haggmar
Comment Utility
same error occured ;(
but i had to change your code
as you wrote it it is wrong vb 6 syntax


I wrote dim tmpData() as byte
redim(tmpdata(remainder))

get #1, remainder, tmpdata
put #2, , tmpdata

any more ideas?

0
 
LVL 19

Expert Comment

by:Melih SARICA
Comment Utility
I ve tried this code .. and it works fine


Dim tempvar(2048) As Byte
Open "c:\try.rar" For Binary As #1
Open "\\192.168.33.11\c$\try.rar" For Binary As #2
counter = 0
filelength = LOF(1)
cnt = 0
dsize = CInt(filelength / 2048) - 1
For cnt = 1 To dsize
 Get #1, , tempvar
 Put #2, , tempvar
 counter = counter + 1
 Next cnt
remainder = CLng(LOF(1) - (CLng((filelength / 2048) - 1) * 2048))
Get #1, , tempvar
Put #2, , tempvar

Close #1
Close #2
0
 

Author Comment

by:haggmar
Comment Utility
well the same code doesnt work for me
have you tried it on a .zip file and not a .rar file?

or any other ways of doing this?
0
 
LVL 19

Accepted Solution

by:
Melih SARICA earned 250 total points
Comment Utility
This Code works even while copying  exe files..

And i did try it.. in Ms Acces, Excell and Vb...
U use y copy paste the code correctly

***************************
Dim tempvar(2048) As Byte
Open "c:\try.zip" For Binary As #1
Open "\\192.168.33.11\c$\try.zip" For Binary As #2
counter = 0
filelength = LOF(1)
cnt = 0
dsize = CInt(filelength / 2048) - 1
For cnt = 1 To dsize
 Get #1, , tempvar
 Put #2, , tempvar
 counter = counter + 1
 Next cnt
remainder = CLng(LOF(1) - (CLng((filelength / 2048) - 1) * 2048))
Get #1, , tempvar
Put #2, , tempvar

Close #1
Close #2
*****************
0
 

Author Comment

by:haggmar
Comment Utility
hmmmm
very strange
i tried it on a exefile and it worked fine
but not on my zip files

any ideas why??
0
 
LVL 19

Expert Comment

by:Melih SARICA
Comment Utility
try with an other zip file..

As u see its not deleting the Target zip file..

If there is a file with the same name.. &#305;ts appends the old file in the target path. adding source file at the edn of target file..

Delete target file first and then copy source file




0

Featured Post

How to improve team productivity

Quip adds documents, spreadsheets, and tasklists to your Slack experience
- Elevate ideas to Quip docs
- Share Quip docs in Slack
- Get notified of changes to your docs
- Available on iOS/Android/Desktop/Web
- Online/Offline

Join & Write a Comment

Suggested Solutions

Title # Comments Views Activity
Help with my python script 6 144
Fibonacci challenge 11 82
sumDigits  challenge 7 60
parentbit challenge 3 51
I know it’s not a new topic to discuss and it has lots of online contents already available over the net. But Then I thought it would be useful to this site’s visitors and can have online repository on vim most commonly used commands. This post h…
This article will show, step by step, how to integrate R code into a R Sweave document
Viewers will learn how to properly install Eclipse with the necessary JDK, and will take a look at an introductory Java program. Download Eclipse installation zip file: Extract files from zip file: Download and install JDK 8: Open Eclipse and …
In this fourth video of the Xpdf series, we discuss and demonstrate the PDFinfo utility, which retrieves the contents of a PDF's Info Dictionary, as well as some other information, including the page count. We show how to isolate the page count in a…

772 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

8 Experts available now in Live!

Get 1:1 Help Now