C# to foxpro

One of my clients have got a application that I think is developed in C# and has asked if I can create a tool that will encrypt a file and has the code that currently encrypts it in C#, I am not the best C# developer and not sure how to convert it to VFP 9.

Any help or guidance would be great.

Thanks!
private string encrypt(string sSource)
    {
        int nLength = sSource.Length;

        byte[] dataByte = StrToByteArray(sSource);

        System.Text.StringBuilder encryptData = new System.Text.StringBuilder();

        for (int i = 0; i < dataByte.Length; i++)
        {
            int asciiValue = (int)dataByte[i];
            if (asciiValue < 0)
            {
                asciiValue = asciiValue + 256;
            }
            asciiValue++;
            if (asciiValue == 256)
            {
                asciiValue = 0;
            }

            switch (asciiValue.ToString().Length)
            {
                case 0:
                    break;
                case 1:
                    encryptData.Append("00" + asciiValue.ToString());
                    break;
                case 2:
                    encryptData.Append("0" + asciiValue.ToString());
                    break;
                case 3:
                    encryptData.Append(asciiValue.ToString());
                    break;

            }
        }
        return encryptData.ToString();
    }

Open in new window

Bart-RouanAsked:
Who is Participating?
 
pcelbaConnect With a Mentor Commented:
This cannot be called encryption... and even with no C# knowledge this is an easy task:
PROCEDURE encrypt
LPARAMETERS lcString

*-- 	private string encrypt(string sSource)
*-- 	    {
*-- 	        int nLength = sSource.Length;

*-- 	        byte[] dataByte = StrToByteArray(sSource);

*-- 	        System.Text.StringBuilder encryptData = new System.Text.StringBuilder();

LOCAL lnI, lnAscii, lcOutput
lcOutput = ""

FOR lnI = 1 TO LEN(lcString)
*-- 	        for (int i = 0; i < dataByte.Length; i++)
*-- 	        {
*-- 	            int asciiValue = (int)dataByte[i];
*-- 	            if (asciiValue < 0)
*-- 	            {
*-- 	                asciiValue = asciiValue + 256;
*-- 	            }
  lnAscii = ASC(SUBSTR(lcString, lnI, 1))
  IF lnAscii = 256
    lnAscii = 0
  ENDIF
*-- 	            asciiValue++;
*-- 	            if (asciiValue == 256)
*-- 	            {
*-- 	                asciiValue = 0;
*-- 	            }

  lcOutput = lcOutput + TRANSFORM(lnAscii, "@L 999")
*-- 	            switch (asciiValue.ToString().Length)
*-- 	            {
*-- 	                case 0:
*-- 	                    break;
*-- 	                case 1:
*-- 	                    encryptData.Append("00" + asciiValue.ToString());
*-- 	                    break;
*-- 	                case 2:
*-- 	                    encryptData.Append("0" + asciiValue.ToString());
*-- 	                    break;
*-- 	                case 3:
*-- 	                    encryptData.Append(asciiValue.ToString());
*-- 	                    break;

*-- 	            }
*-- 	        }
NEXT

RETURN lcOutput
*-- 	        return encryptData.ToString();
*-- 	    }

Open in new window

0
 
Bart-RouanAuthor Commented:
Hi,

Thanks a mill, I didn't even gave it a look but thanks anyway.

0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.