Thanks for your reply Dimitry.
I am still relatively new to C# - would you have an example which
demonstrates what you had said?
Cheers,
John
"Dmitriy Lapshin [C# / .NET MVP]" <x-code@no-spam-please.hotpop.com> wrote
in message news:OEry6Ai$EHA.2540@TK2MSFTNGP09.phx.gbl...[color=blue]
> Hi JSM,
>
> First of all, remember that all strings in .NET are internally Unicode
> strings, so in order to get real ASCII codes you should use the GetBytes
> method of an Encoding instance configured for the ASCII encoding (as far[/color]
as[color=blue]
> I remember there is a static instance accessible as Encoding.Ascii). Now
> that you have the bytes with the ASCII codes, you do the encryption and
> again, you've got bytes, not characters. Therefore, it seems natural to
> write out the resultant bytes in a binary mode where the issue of[/color]
character[color=blue]
> encoding simply is out of the picture.
>
> --
> Sincerely,
> Dmitriy Lapshin [C# / .NET MVP]
> Bring the power of unit testing to the VS .NET IDE today!
>
http://www.x-unity.net/teststudio.aspx
>
> "JSM" <jsm@spam.pacific.net.au> wrote in message
> news:eVpZJRh$EHA.1400@TK2MSFTNGP11.phx.gbl...[color=green]
> > Hi,
> >
> > I am just trying to port an existing simple encryption routine to C#.[/color][/color]
this[color=blue][color=green]
> > routine simply adds/substracts 10 ascii characters to each character in[/color][/color]
a[color=blue][color=green]
> > text file (except quotes). The routine for decrypting the file works[/color][/color]
fine[color=blue][color=green]
> > however when I encrypt the file, several characters are corrupted. when[/color][/color]
I[color=blue][color=green]
> > looked into it they are always extended ascii characters (eg "x" which[/color][/color]
is[color=blue][color=green]
> > ascii character 120 gets translated to ascii character 130 which is part
> > of
> > the extended ascii range of characters). I am assuming this has[/color][/color]
something[color=blue][color=green]
> > to
> > do with the Encoding which I used to read/write the text files but I[/color][/color]
just[color=blue][color=green]
> > can't seem to get it to work. I have tried specifying all different[/color][/color]
types[color=blue][color=green]
> > of
> > encoding (Unicode, Ascii, UTF7/8 without success).
> >
> > I can't change the encryption method because this needs to work with
> > existing installations of my application.
> >
> > Below are the two routines. Any ideas ? I thought this would be a very
> > simple task but alas I was wrong!
> >
> > Cheers,
> >
> > John
> > --------------------------------------
> >
> > public void DecryptFile(string SourceFile,string DestFile)
> > {
> > string line;
> > StreamReader sr=new StreamReader(SourceFile,Encoding.Default);
> > StreamWriter sw=new StreamWriter(DestFile,false,Encoding.Default);
> >
> > while ((line=sr.ReadLine())!=null)
> > {
> > string newline="";
> >
> > for (int x=0;x<line.Length;x++)
> > {
> > if ((line.Substring(x,1)==qte) ||
> > (line.Substring(x,1)==Convert.ToChar(44).ToString( )))
> > newline +=line.Substring(x,1);
> > else
> > {
> > newline +=
> >[/color][/color]
Convert.ToChar((int)Encoding.Default.GetBytes(line .Substring(x,1))[0]-10).To[color=blue][color=green]
> > String();
> > }
> > }
> > sw.WriteLine(newline);
> > }
> >
> > sr.Close();
> > sw.Close();
> > }
> >
> >
> > public void EncryptFile(string SourceFile,string DestFile)
> > {
> > string line;
> > StreamReader sr=new StreamReader(SourceFile,Encoding.Default);
> > StreamWriter sw=new StreamWriter(DestFile,false, Encoding.Default);
> >
> > while ((line=sr.ReadLine())!=null)
> > {
> > string newline="";
> > for (int x=0;x<line.Length;x++)
> > {
> > if ((line.Substring(x,1)==qte) ||
> > (line.Substring(x,1)==Convert.ToChar(44).ToString( )))
> > newline +=line.Substring(x,1);
> > else
> > {
> > newline +=
> >[/color][/color]
Convert.ToChar((int)Encoding.Default.GetBytes(line .Substring(x,1))[0]+10).To[color=blue][color=green]
> > String();
> > }
> > }
> >
> > sw.WriteLine(newline);
> > }
> >
> > sr.Close();
> > sw.Close();
> > }
> >
> >[/color]
>[/color]