xsharp.eu • VO FWrite->C# ReadAllText
Page 1 of 1

VO FWrite->C# ReadAllText

Posted: Sun Oct 18, 2020 4:44 pm
by ic2
In VO I write a crypted string like this:

ptrHandle := FCreate(cPath)
// ....some checks. creating + crypting the string
FWrite(ptrHandle, cText)


In C# I read it back as follows:

string cName = File.ReadAllText(cExeDir + "MyFile.txt", Encoding.ASCII);

(after which XSharp.VO.Functions.CryptRaw should decrypt it again, as suggested by Chris).

But the value in cName (before decrypting) doesn't look like the value I see written by the VO function.

What should I do to get the same result? In C# I tried some different encodings without success. I read the https://www.xsharp.eu/forum/public-prod ... se64#16183 thread
but I am not sure if I need to encode my string first in VO to get it back correctly in C#.

Finally I considered to use the X# function FRead but as this is part of XSharp.Core and not XSharp.VO I doubt if this is going to give me the same string back.

Dick

VO FWrite->C# ReadAllText

Posted: Sun Oct 18, 2020 9:19 pm
by ic2
I think I solved it in the meantime.

string cName = File.ReadAllText(cExeDir + "Myfile.txt", Encoding.GetEncoding("Windows-1252"));

This should give the same value as the encoding which was used on creating it with VO.
I need to check a couple of keys to see if CryptRaw will always give the same value, because in my first example the first character of the (user) name was replaced by a ® character using CryptRaw and it was not with the further equal VO (de-) Crypt call.

I've added a space (a couple of fields are encrypted) and now it seems fine, the space is not converted to the ®. Very strange.

Dick