#

Listato 4

Convertitore da WordStar a HTML
 
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;

namespace WSconvert
{
    class WSconvert
    {
        static void Main(string[] args)
        {          
            int chr;
            string co;
            bool newline = true;
            bool escaped = false;
            if (args.Length != 1)
            {
                Console.WriteLine("Usage: WSconvert filename");
                return;
            }
            FileInfo fi = new FileInfo(args[0]);
            FileStream sr = fi.OpenRead();
            while(sr.Position < sr.Length)
            {
                chr = sr.ReadByte();
                if (newline)
                {
                    Console.Write("<p>");
                    newline = false;
                }
                if (chr == 0x1b || chr == 0x9b) {
                    escaped = true;
                    continue;
                }
                co = "";
                switch(chr) {
                    case 130:
                        co = "&eacute;";  //
                        break;
                    case 133:
                        co = "&agrave;";  //
                        break;
                    case 138:
                        if (escaped)
                                                        co = "&egrave;";  //
                        else
                            co = ""; // soft-lf
                        break;
                    case 141:
                        if (escaped)
                            co = "&igrave;";  //
                        else
                            co = ""; // soft-cr
                        break;                  
                    case 149:
                        co = "&ograve;";  //
                        break;
                    case 151:
                        co = "&ugrave;";  //
                        break;
                    case 128+32:
                        co = "";
                        break;
                    case 13:
                        co = "";
                        Console.WriteLine("</p>");
                        newline = true;
                        break;
                    default:
                        chr = chr & 127;
                        if (chr > 31)
                            co = ""+(char)chr;
                        break;
                }
                escaped = false;
                Console.Write(co);
            }
            if (!newline)
                Console.WriteLine("</p>");
            sr.Close();
        }
    }
}
 
Inizio pagina
Home page
 
Creative Commons  License BY-NC-SA
Ove non diversamente specificato i contenuti del sito sono rilasciati con licenza Creative Commons BY-NC-SA 4.0 

Copyright © 2007-2020 The Strawberry Field - Roberto Ceccarelli