File: transcoder.fal

package info (click to toggle)
falconpl 0.9.6.9-git20120606-2
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 46,176 kB
  • sloc: cpp: 181,389; ansic: 109,025; yacc: 2,310; xml: 1,218; sh: 403; objc: 245; makefile: 82; sql: 20
file content (72 lines) | stat: -rw-r--r-- 1,729 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
/*
   FALCON - Samples

   FILE: transcoder.fal


   Transcodes an input file from a certain encoding to another.
   This code is currently highly experimental.
   -------------------------------------------------------------------
   Author: Giancarlo Niccolai
   Begin:

   -------------------------------------------------------------------
   (C) Copyright 2006: the FALCON developers (see list in AUTHORS file)

   See LICENSE file for licensing details.
*/

if len( args ) != 4
	printl( "usage: ", scriptName, " <infile> <inenc>  <outfile> <outenc>" )
	printl( "Knwon encodings: "+
				"\tutf-8\t\tUnicode UTF-8\n"+
				"\tutf-16\t\tUnicode UTF-16 (endian detecting)\n"+
				"\tutf-16BE\tUnicode UTF-16 Big Endian\n"+
				"\tutf-16LE\tUnicode UTF-16 Little Endian\n"+
				"\tiso8859-<x>\twhere <x> 1..15: ISO tables\n"+
				"\tcp1252\t\tMS-Windows code page LATIN\n"+
            "\tgbk\t\tGBK encoding for modern chinese\n"+
				"\tC\t\tDirect untranslated byte encoding\n" )
   printl( "\n...Local system encoding: ", getSystemEncoding(), "\n" )
   return 0
end

try
	input = InputStream( args[0] )
	output = OutputStream( args[2] )
catch in error
	printl( "Error while opening streams: ", error.toString() )
	return 1
end

try
	input.setEncoding( args[1] )
catch
	printl( "Unknown encoding ", args[1] )
	return 1
end

try
	output.setEncoding( args[3] )
catch
	printl( "Unknown encoding ", args[3] )
	return 1
end

try
   buffer = ""
   while( input.readText( buffer, 1024 ) != 0 )
   	output.writeText( buffer )
   end

   input.close()
   output.close()
catch in error
	printl( "Error while transcoding streams: ", error.toString() )
	return 1
end

printl( "Operation complete." )
return 0

/* end of transcoder.fal */