[dba-VB] C# replace a special character

jwcolby jwcolby at colbyconsulting.com
Tue Oct 20 15:00:53 CDT 2009


Thanks Shamil!

John W. Colby
www.ColbyConsulting.com


Shamil Salakhetdinov wrote:
> Hi John,
> 
> Try this code snippet changing input and output files' paths:
> 
> int bufferSize = 1024*1024;
> 
> string inputFile = @"c:\temp\inputFile.txt";
> string outputFile = @"c:\temp\outputFile.txt";
> 
> System.IO.FileStream inputStream =
>     new System.IO.FileStream(
>         inputFile,
>         System.IO.FileMode.Open,
>         System.IO.FileAccess.Read,
>         System.IO.FileShare.None,
>         bufferSize);
> System.IO.FileStream outputStream =
>     new System.IO.FileStream(
>         outputFile,
>         System.IO.FileMode.Create,
>         System.IO.FileAccess.Write,
>         System.IO.FileShare.None,
>         bufferSize);
> 
> byte[]data = new byte[bufferSize];
> int offset = 0;
> int totalLength = 0;
> int length = 0;
> while ((length = inputStream.Read(data, offset, bufferSize)) > 0)
> {
>     totalLength += length;
> 
>     string text = System.Text.Encoding.ASCII.GetString(data);
>     text = text.Replace((char)26, ' ').Replace((char)0x1a,' ') ;
>     data = System.Text.Encoding.ASCII.GetBytes(text);    
>     
>     outputStream.Write(data, offset, length);
> }
> 
> inputStream.Close();
> outputStream.Close();
> 
> Console.WriteLine("Total length test: {0}", totalLength);
> 
> HTH.
> 
> --
> Shamil
> 
> -----Original Message-----
> From: dba-vb-bounces at databaseadvisors.com
> [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby
> Sent: Tuesday, October 20, 2009 7:45 PM
> To: VBA
> Subject: [dba-VB] C# replace a special character
> 
> I have a file which contains a sprinkling of a special character - decimal
> 26, hex 1A (the SUB 
> character).  This special character in the CSV file output to Accuzip causes
> Accuzip to hiccup.  In 
> order to get on with my life I need to pre-process the files to get rid of
> this special character. 
> Because of the size of these files (hundreds of mbytes) I need to do a
> readline / replace / 
> writeline kind of thing.  I think I need to use the stringbuilder.replace
> but I do not know how to 
> specify replacing this hex 1A with something else.  The something else would
> ideally be nothing 
> (empty string) but can be any valid alpha character (A, B etc).
> 
> Can anyone help me with this replace part of the problem.  C# syntax please.
> 



More information about the dba-VB mailing list