From WikiChip
Difference between revisions of "mirc/commands/fopen"
< mirc‎ | commands

(Switches)
(Parameters)
Line 10: Line 10:
  
 
== Parameters ==
 
== Parameters ==
* '''<handle>''' - a handle associated with an open file
+
* '''<handle>''' - A handle associated with an open file.
* '''<filename>''' - the filename to open
+
* '''<filename>''' - The filename to open.
  
 
== Example ==
 
== Example ==

Revision as of 17:59, 2 July 2014

The /fopen command opens <filename> and assigns it a handle. The file is opened for both writing and reading: see file handling. If an error occurred, processing does not halt. You must check that $fopen(<handle>).err or $ferr is not true.

Synopsis

/fopen [-no] <handle> <filename>

Switches

  • -n - Create a new file, fails if already exists
  • -o - Creates a new file, overriding an old one if exists
  • -x - Opens the file in exclusive mode (will fail to open if already in use)

Parameters

  • <handle> - A handle associated with an open file.
  • <filename> - The filename to open.

Example

A simple example that prints one line to a new file:

; simple fopen example
alias fopen_example {
  .fopen -n h hello.txt
  ;error check
  if ($ferr) {
    echo -sce info * /fopen_example: example.txt already exists!
    halt
  }
  ;print text
  .fwrite h Hello There
  ;close the handle
  .fclose h
  ;open file in default editor
  run hello.txt
}

A script that prints all the permutations of there-characters to a file.

; print permutations [aaa]-[zzz]
alias perm_example {
  .fopen -n h example.txt
  ;error check
  if ($ferr) {
    echo -sce info * /fopen_example: example.txt already exists!
    halt
  }
  ;print all the permutations to the file
  var %x = 97
  while (%x < 123) {
    var %y = 97
    while (%y < 123) {
      var %z = 97
      while (%z < 123) {
        .fwrite -n h $+($chr(%x), $chr(%y), $chr(%z))
        inc %z
      }
      inc %y
    }
    inc %x
  }
  ;close the handle
  .fclose h
}

Broken Compatibility

in mIRC 7.22 /fopen left the handle open even after it failed. The compatibility change stated above was changed back to the old behavior in mIRC 7.24.

Compatibility

Added: 29/08/2003

Added On: mIRC v6.1

Note: Individual switches were not taken into consideration.

See also