From WikiChip
mirc/commands/fopen
< mirc‎ | commands
Revision as of 05:15, 6 December 2013 by David (talk | contribs) (Created page with "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 occ...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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

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