# Read File 1, Create File 2, Copy Line 1 From File 1 To File 2

## Recommended Posts

Ok no flaming of the noob but I was messing around with the help file and was learning about

fileopen

filewrite

filecreate

so I thought how would I open 1 file read its first line, create a new file and write file 1's first line into file 2's.

This is just copying and pasting the example code so please dont point that out to me lol.

What do I need to do to make this work?

#include <File.au3>
If Not _FileCreate("file1.txt") Then
MsgBox(4096,"Error", " Error Creating/Resetting log.      error:" & @error)
EndIf
$file = FileOpen("file1.txt", 1) ; Check if file opened for writing OK If$file = -1 Then
MsgBox(0, "Error", "Unable to open file.")
Exit
EndIf
$file = FileOpen("file2.txt", 0) ; Check if file opened for reading OK If$file = -1 Then
MsgBox(0, "Error", "Unable to open file.")
Exit
EndIf

; Read in 1 character at a time until the EOF is reached
While 1
$chars = FileRead($file, 1)
If @error = -1 Then ExitLoop

FileWrite($file, "$chars" & @CRLF)

FileClose($file) Wend ok so I messed with it a little, its not exactly copied the exact way but please shed some light on this. are there any tutorials out for AI3? #### Share this post ##### Link to post ##### Share on other sites It would be better to use also File.au3 found into Autoit\include folder to create the file and FileReadLine, FileWriteLine to read/write. here is an example: #include <File.au3> _FileCreate(@ScriptDir&"\result.txt") ;create the file result.txt$to_read = FileOpen(@ScriptDir&"\to_read.txt", 0)       ;open the file to read from in read-only mode
$to_write = FileOpen(@ScriptDir&"\result.txt", 1) ;open the file to write in read-write mode FileWriteLine ($to_write, FileReadLine($to_read, 1)) ;write the line read from to_read file FileClose ($to_read)                                    ;close files
FileClose ($to_write) If you already have the file to write to, then you can get rid of include<file.au3> and _FileCreate SNMP_UDF ... for SNMPv1 and v2c so far, GetBulk and a new example script wannabe "Unbeatable" Tic-Tac-Toe Paper-Scissor-Rock ... try to beat it anyway :) #### Share this post ##### Link to post ##### Share on other sites ...If you already have the file to write to, then you can get rid of include<file.au3> and _FileCreate From the help file under FileOpen: When opening a file in write mode, the file will be created if it does not exist. Just FYI [size="1"][font="Arial"].[u].[/u][/font][/size] #### Share this post ##### Link to post ##### Share on other sites ...ok so I messed with it a little, its not exactly copied the exact way but please shed some light on this.... When you copied and pasted the FileOpen code, you failed to change the varable named$file to something unique.

If you still want to play with this code, try this:

$file1 = FileOpen("input.txt", 0)$file2 = FileOpen("output.txt", 1)

; Read in 1 character at a time until the EOF is reached
While 1
$chars = FileRead($file1, 1)
If @error = -1 Then ExitLoop

FileWrite($file2, "$chars" & @CRLF)
WEnd

FileClose($file1) FileClose($file2)
You can add the error checking back in after you understand the basic code.

...are there any tutorials out for AI3?

See here:

[size="1"][font="Arial"].[u].[/u][/font][/size]

##### Share on other sites

Just FYI

Thanks, it is good to know it.

I prefered to use the _FileCreate function just to be sure that the file is created

SNMP_UDF ... for SNMPv1 and v2c so far, GetBulk and a new example script

wannabe "Unbeatable" Tic-Tac-Toe

Paper-Scissor-Rock ... try to beat it anyway :)

##### Share on other sites

Thanks, it is good to know it.

I prefered to use the _FileCreate function just to be sure that the file is created

How do you think _FileCreate creates the file?

##### Share on other sites

How do you think _FileCreate creates the file?

Dunno, but I'm 100% sure you're right to ask me that. I use to take a look inside UDFs and try to figure how a function is created (if I'm interrested in that function) and last time I did that for ReplaceStringInFile. I guess I took _FileCreate for granted and I didn't bothered myself to look at the code.

I will take a look at it a.s.a.p

Anyway I've learned something out of this discussion and I am grateful.

SNMP_UDF ... for SNMPv1 and v2c so far, GetBulk and a new example script

wannabe "Unbeatable" Tic-Tac-Toe

Paper-Scissor-Rock ... try to beat it anyway :)

##### Share on other sites

Thanks, it is good to know it.

I prefered to use the _FileCreate function just to be sure that the file is created

When you use #include <File.au3> you add 697 lines to your script. That is okay if you are going to use several UDFs from the included file - or - if you are going to use the nice error checking that the UDFs have built in. If you like _FileCreate, then you might want to check for any errors that it returns. If you are not going to use the error checking, then you might as well use the one line from that UDF that actually creates the file: $hOpenFile = FileOpen($sFilePath, 2)

Just a thought - I do not use error checking as often as I should. :-)

Edit: not picking on you - it is just that a lot of people do not know that all of the lines of an included file will be the script... even including all of those lines is not a big deal - as long as you know.

Edited by herewasplato

[size="1"][font="Arial"].[u].[/u][/font][/size]

##### Share on other sites

Edit: not picking on you - it is just that a lot of people do not know that all of the lines of an included file will be the script... even including all of those lines is not a big deal - as long as you know.

As an experiment, you can take a really simple script, like a hello world GUI with just an exit button, put #include <guiconstants.au3> at the top and compile it.

Then do a decompile and look at the resulting script.

It's very instructional to see what's really in there.

Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law

##### Share on other sites

It is pretty obvious what is included in your file when you use "#include ..." a simple look at the files in the AutoIt\Include is enough; so far it doesn't bother me to include anything I need in order to make the script work. But later ... who knows ..

SNMP_UDF ... for SNMPv1 and v2c so far, GetBulk and a new example script

wannabe "Unbeatable" Tic-Tac-Toe

Paper-Scissor-Rock ... try to beat it anyway :)

## Create an account

Register a new account