Join The Works program to have access to the most current content, and to be able to ask questions and get answers from Revelation staff and the Revelation community

At 10 FEB 2000 03:08:02AM Bertil Strom wrote:

Hi

Does anyone has a tip to how to use copy32.exe from within OI.

I need to copy some OS files from one server to another.

Regards

Bertil Ström


At 10 FEB 2000 03:56AM Oystein Reigem wrote:

Bertil,

What is copy32.exe?

To copy a set of files I would do the following:

- Establish a list of files to copy, e.g with DirList

- Convert the list into a CrLf-delimited string of copy- or xcopy-commands

- Write those commands to a text file with a .bat extension

- Run that bat file with Utility RUNWIN

- Be annoyed. Annoyed with having that ugly MS-DOS window on the screen. Annoyed with commands and possible error messages just flickering by. Annoyed there is no chance for the program to check if each file copy succeeded. (I guess all these problems can be circumvented, but workarounds are annoying too.)

Vennlig hilsen

- Oystein -


At 10 FEB 2000 04:43AM [url=http://www.sprezzatura.com]The Sprezzatura Group[/url] wrote:

[notag]Hi Oystein,

What about the OSOpen, OSBWrite etc commands in Basic+? You could write a routine to do this copy stuff for you and them at least you'd get all the error messages.

This is a function I wrote ages ago:

[<pre>

Compile Subroutine Dos_Copy(CharStr SourceFile, CharStr TargetFile, CharStr Error)

$Insert Logical
Equ Bytes$	To	32000

Offset		=	0
WriteError	=	False$
Error		=	""


* Check for Wildcards

If Index(SourceFile,"*",1) Or Index(SourceFile,"?",1) Or Index(TargetFile,"*",1) Or Index(TargetFile,"*",1) Then
	Error = "Error: Wildcard characters are not allowed"
End 

If Len(Error) Else
	
	OsOpen SourceFile To hFileSource Then
		OsOpen TargetFile To hFileTarget Else
						
			OsWrite "" On TargetFile
				
			If Status() Then
				Error = "Error creating " : TargetFile
			End	Else				
				OsOpen TargetFile To hFileTarget Else
					Error = "Error: Could not Open " : TargetFile
				End
			End 
			
							
		End
			
		If Len(Error) Else
						
			Loop
				DosRec	= ""
				
				If Len(Error) Else
					OsBRead DosRec From hFileSource At Offset Length Bytes$
					If Status() Then
						Error = "Error reading " : SourceFile
					End
				End
				
			While DosRec
				
				OsBWrite DosRec On hFileTarget At Offset
				If Status() Then
					Error 		= "Error writing to " : TargetFile
					DosRec 		= ""
					WriteError	=	1
					
				End Else	
					Offset += Bytes$
				End
									
			Repeat		
				
			OsClose hFileTarget
			If Status() Then
				Error = "Error closing " : TargetFile
			End Else
				If WriteError Then
					OsDelete TargetFile
				End
			End		
		End
		
		OsClose hFileSource
		If Status() Then
			Error := "Error closing " : SourceFile
		End	
		
	End Else
		Error = "Error opening " : SourceFile
	End
															
End
	

Return

</pre>]

[<A HREF="http://www.sprezzatura.com" onMouseOver="window.status='Click here to visit our web site?';return(true)">The Sprezzatura Group</A>]

[<I>World Leaders in all things RevSoft</I>]

[<img src="http://www.sprezzatura.com/zz.gif">]

[<script language="javascript">function openNewPage () {window.location.href=(document.TOCNavigator.pageToGoTo.options[document.TOCNavigator.pageToGoTo.selectedIndex].value);document.TOCNavigator.pageToGoTo.selectedIndex="0";}end hiding from non-JS browsers –></script>] [<FORM ACTION "" METHOD=GET NAME="TOCNavigator" <SELECT NAME="pageToGoTo" SIZE=1 onChange="openNewPage()"> <OPTION>Pull down this menu to choose whereabouts on the Sprezz site to go <OPTION VALUE="http://www.sprezzatura.com">Home Page <OPTION VALUE="http://www.sprezzatura.com/whatsnew.htm">What's New <OPTION VALUE="http://www.sprezzatura.com/senl.htm">SENL <OPTION VALUE="http://www.sprezzatura.com/patches.htm">Download S/LIST <OPTION VALUE="mailto:[email protected]">Send mail to support at Sprezzatura <OPTION VALUE="mailto:[email protected]">Send mail to sales at Sprezzatura </SELECT> </FORM>][/notag] </QUOTE> —- === At 10 FEB 2000 04:55AM Oystein Reigem wrote: === <QUOTE>Mr Group, I thought there was a reason for not copying files that way. Does it work on binary files? It won't stop when it hits ctrl-Z or something? Excuse my ignorance. - Oystein - </QUOTE> —- === At 10 FEB 2000 05:00AM The Sprezzatura Group wrote: === <QUOTE>[notag]No, it copies as many bytes as you tell it to or as many as it can get. I've never had a problem with these functions and use them to copy allsorts of things, including DLL's and EXE's. The only problem is it changes the date and timestamp on the file. Regards [<A HREF="http://www.sprezzatura.com" onMouseOver="window.status='Click here to visit our web site?';return(true)">The Sprezzatura Group</A>] [<I>World Leaders in all things RevSoft</I>] [<img src="http://www.sprezzatura.com/zz.gif">] [<script language="javascript">function openNewPage () {window.location.href=(document.TOCNavigator.pageToGoTo.options[document.TOCNavigator.pageToGoTo.selectedIndex].value);document.TOCNavigator.pageToGoTo.selectedIndex="0";}end hiding from non-JS browsers –></script>]

[<FORM ACTION "" METHOD=GET NAME="TOCNavigator"

<SELECT NAME="pageToGoTo" SIZE=1 onChange="openNewPage()">

<OPTION>Pull down this menu to choose whereabouts on the Sprezz site to go

<OPTION VALUE="http://www.sprezzatura.com">Home Page

<OPTION VALUE="http://www.sprezzatura.com/whatsnew.htm">What's New

<OPTION VALUE="http://www.sprezzatura.com/senl.htm">SENL

<OPTION VALUE="http://www.sprezzatura.com/patches.htm">Download S/LIST

<OPTION VALUE="mailto:[email protected]">Send mail to support at Sprezzatura

<OPTION VALUE="mailto:[email protected]">Send mail to sales at Sprezzatura

</SELECT>

</FORM>][/notag]


At 10 FEB 2000 09:14AM Oystein Reigem wrote:

Mr Group,

The only problem is it changes the date and timestamp on the file.

Not nice, but could have been worse. I'll reconsider for my own file copying needs.

- Oystein -


At 10 FEB 2000 09:19AM Somebody wrote:

… This is a function I wrote ages ago: …

I, the Group?


At 10 FEB 2000 10:11AM [url=http://www.sprezzatura.com]The Sprezzatura Group[/url] wrote:

[notag]No,

I, Borg …

[<b>Resistance is futile!!</b>]

[<A HREF="http://www.sprezzatura.com" onMouseOver="window.status='Click here for assimilation';return(true)">The Sprezzatura Group</A>]

[<I>World Leaders in all things Star Trek</I>]

[<img src="http://www.sprezzatura.com/zz.gif">]

[<script language="javascript">function openNewPage () {window.location.href=(document.TOCNavigator.pageToGoTo.options[document.TOCNavigator.pageToGoTo.selectedIndex].value);document.TOCNavigator.pageToGoTo.selectedIndex="0";}end hiding from non-JS browsers –></script>] [<FORM ACTION "" METHOD=GET NAME="TOCNavigator" <SELECT NAME="pageToGoTo" SIZE=1 onChange="openNewPage()"> <OPTION>Pull down this menu to choose whereabouts on the Sprezz site to go <OPTION VALUE="http://www.sprezzatura.com">Home Page <OPTION VALUE="http://www.sprezzatura.com/whatsnew.htm">What's New <OPTION VALUE="http://www.sprezzatura.com/senl.htm">SENL <OPTION VALUE="http://www.sprezzatura.com/patches.htm">Download S/LIST <OPTION VALUE="mailto:[email protected]">Send mail to support at Sprezzatura <OPTION VALUE="mailto:[email protected]">Send mail to sales at Sprezzatura </SELECT> </FORM>][/notag] </QUOTE> —- === At 10 FEB 2000 10:16AM The Sprezzatura Group wrote: === <QUOTE>From the OpenInsight 3.5 README.WRI file…. ·Provided a utility to copy OS files; syntax is Utility("COPYFILE", SrcFile, DestFile). (SYSOBJ/$UTILITY, SYSOBJ/$UTILITYCOPYFILE, OICOMMON.DLL) The Sprezzatura Group World leaders in all things ReadMes[/i]

www.sprezzatura.com_zz.jpg


At 11 FEB 2000 04:27AM Oystein Reigem wrote:

Group,

Is the COPYFILE Utility better suited for Swedes and the Dos_Copy subroutine nearer the Norwegian mindset? :-)

What I mean is - are there any particular advantages to chosing either the Dos_Copy subroutine or the COPYFILE Utility?

Let me guess: The COPYFILE Utility is in essence a black box that just returns 1 (true$) when the copying succeeded and 0 (false$) otherwise. If you try with a long file name (e.g "123456789.txt") it unceremoniously truncates the name ("12345678.txt") and trudges on. It cannot do wildcard copy.

Neither can the Dos_Copy subroutine, but it does more error checking and with the source available is extendable both when it comes to functionality and error checking.

Correct?

What about performance? Like when my app needs to copy thousands of image files, totalling a few hundred megs of data.

- Oystein -


At 11 FEB 2000 09:54PM Cameron Purdy wrote:

Use the Utility function to copy files. Its performance is good, it uses the correct read/write flags during copying, and it does not change the date/time of the file. Besides, I wrote it .

Cameron Purdy

Revelation Software


At 14 FEB 2000 03:09AM Oystein Reigem wrote:

Cameron,

Those are all good reasons to be sure. I've already started using it. Just a minor detail: If the copy fails, is there any way to check what went wrong?

- Oystein -


At 15 FEB 2000 03:16AM Bertil Strom wrote:

Thanks for the tip, (and an interesting discussion)

/Bertil


At 20 FEB 2000 10:37AM Cameron Purdy wrote:

I believe you can use Get_Status.

Cameron Purdy

Revelation Software


At 20 FEB 2000 11:53AM Oystein Reigem wrote:

Cameron.

Thought I did. With a source file that didn't exist.

Well, I'll try again, and if Get_Status doesn't work it's no big deal - at least for what I want to use the copyfile Utility for now.

- Oystein -


At 07 APR 2000 04:45AM Oystein Reigem wrote:

Sprezz UK,

If I ever visit you again I'll try to remember to bring a can of beer from the Borg Brewery.

- Oystein -

View this thread on the Works forum...

  • third_party_content/community/commentary/forums_works/c0bf4c42f5678af185256881002cae53.txt
  • Last modified: 2023/12/30 11:57
  • by 127.0.0.1