Tested utf8 and the polygons codes in excel vba and in c sharp Geometrifying Trigonometry Muses

 Write a vba program that converts the text files as ASCII entries like অংক to the file storing 

অংক in unicode format

ChatGPT

Certainly! To write a VBA program that converts a text file containing ASCII entries like অংক to the file storing Unicode characters for Bengali script (e.g., অংক), you can use the following code. This code assumes that the ASCII entries are separated by semicolons (;). You'll need to adapt the code if a different separator is used.


vba

Copy code

Sub ConvertAsciiToUnicode()

    Dim inputFilePath As String

    Dim outputFilePath As String

    Dim inputData As String

    Dim outputData As String

    

    ' Set the path for your input and output files

    inputFilePath = "C:\Path\To\InputFile.txt"

    outputFilePath = "C:\Path\To\OutputFile.txt"

    

    ' Read the content of the input file

    Open inputFilePath For Input As #1

    inputData = Input$(LOF(1), #1)

    Close #1

    

    ' Split the input data into an array based on semicolon

    Dim asciiEntries() As String

    asciiEntries = Split(inputData, ";")

    

    ' Convert ASCII entries to Unicode and concatenate them

    For i = LBound(asciiEntries) To UBound(asciiEntries)

        If IsNumeric(asciiEntries(i)) Then

            outputData = outputData & ChrW(CInt(asciiEntries(i)))

        Else

            ' If the entry is not numeric, keep it as is

            outputData = outputData & asciiEntries(i)

        End If

    Next i

    

    ' Write the Unicode data to the output file

    Open outputFilePath For Output As #2

    Print #2, outputData

    Close #2

    

    MsgBox "Conversion complete. Output file saved at: " & outputFilePath

End Sub

Make sure to replace the file paths (inputFilePath and outputFilePath) with the paths to your input and output files. Also, note that this code assumes that the ASCII entries are valid integers. If your data has a different format, you may need to adjust the code accordingly.


To run this code, press Alt + F11 to open the VBA editor in Excel, paste the code into a new or existing module, and then run the ConvertAsciiToUnicode subroutine.



Use    sFileName = Application.GetOpenFilename("NORMAL AMPERSAND DOLLAR ASCII Text Files (*.txt), *.txt") and Scripting.FileSystemObject

ChatGPT

Certainly! If you want to use Application.GetOpenFilename to allow the user to select the input file and leverage the Scripting.FileSystemObject for file handling, you can modify the code accordingly. Here's an updated version:


vba

Copy code

public Sub SAAN_ASCII_FILES_AMPERSAND_HASH_ConvertAsciiToUnicode_UTF8()

    Dim inputFilePath As String

    Dim outputFilePath As String

    Dim inputData As String

    Dim outputData As String

    Dim asciiEntries() As String

    Dim i As Integer

    Dim fso As Object

    Dim inputFile As Object

    Dim outputFile As Object

    

    ' Prompt user to select the input file

    inputFilePath = Application.GetOpenFilename("NORMAL AMPERSAND DOLLAR ASCII Text Files (*.txt), *.txt")

    

    ' Check if the user selected a file

    If inputFilePath = "False" Then

        MsgBox "No file selected. Exiting."

        Exit Sub

    End If

    

    ' Create a Scripting.FileSystemObject

    Set fso = CreateObject("Scripting.FileSystemObject")

    

    ' Read the content of the input file

    Set inputFile = fso.OpenTextFile(inputFilePath, 1) ' 1: ForReading

    inputData = inputFile.ReadAll

    inputFile.Close

    

    ' Split the input data into an array based on semicolon

    asciiEntries = Split(inputData, ";")

    

    ' Convert ASCII entries to Unicode and concatenate them

    For i = LBound(asciiEntries) To UBound(asciiEntries)

        If IsNumeric(asciiEntries(i)) Then

            outputData = outputData & ChrW(CInt(asciiEntries(i)))

        Else

            ' If the entry is not numeric, keep it as is

            outputData = outputData & asciiEntries(i)

        End If

    Next i

    

    ' Prompt user to select the output file

    outputFilePath = Application.GetSaveAsFilename("Unicode Output File (*.txt), *.txt")

    

    ' Check if the user selected a file

    If outputFilePath = "False" Then

        MsgBox "No output file selected. Exiting."

        Exit Sub

    End If

    

    ' Write the Unicode data to the output file

    Set outputFile = fso.CreateTextFile(outputFilePath, True, False) ' True: Overwrite, False: Don't create Unicode file

    outputFile.Write outputData

    outputFile.Close

    

    MsgBox "Conversion complete. Output file saved at: " & outputFilePath

End Sub'''public Sub SAAN_ASCII_FILES_AMPERSAND_HASH_ConvertAsciiToUnicode_UTF8()




This code uses Application.GetOpenFilename to prompt the user to select the input file and Application.GetSaveAsFilename to prompt the user to select the output file. The Scripting.FileSystemObject is then used to handle file operations. Make sure to add appropriate error handling if needed for your specific use case.



Why is there overflow at  For i = LBound(asciiEntries) To UBound(asciiEntries)?

ChatGPT

The overflow issue may occur if the ASCII entries in your text file are very large. The CInt function in VBA converts a numeric expression to an Integer data type, which has a limited range of values (-32,768 to 32,767). If your ASCII entries exceed this range, you will encounter an overflow error.


To handle larger values, you can use the CLng function to convert the ASCII entries to a Long data type, which has a much larger range of values (-2,147,483,648 to 2,147,483,647).


Here's the modified part of the code:


vba

Copy code

' Convert ASCII entries to Unicode and concatenate them

For i = LBound(asciiEntries) To UBound(asciiEntries)

    If IsNumeric(asciiEntries(i)) Then

        ' Use CLng instead of CInt

        outputData = outputData & ChrW(CLng(asciiEntries(i)))

    Else

        ' If the entry is not numeric, keep it as is

        outputData = outputData & asciiEntries(i)

    End If

Next i

By making this change, you should be able to handle larger ASCII values without encountering an overflow error. Keep in mind that if your ASCII entries are extremely large, you might also need to consider using the CDbl function and ChrW accordingly, as Double has an even larger range. Adjust the data type conversion based on the specific requirements of your input data.




Still there is overflow with error number 6

ChatGPT

If you're still experiencing an overflow error, it's possible that the ASCII entries in your text file are too large to be accommodated even by the CLng function. In such cases, you may need to use the CDbl function to convert the ASCII entries to a Double data type, which has a much larger range.


Here's the modified part of the code using CDbl:


vba

Copy code

' Convert ASCII entries to Unicode and concatenate them

For i = LBound(asciiEntries) To UBound(asciiEntries)

    If IsNumeric(asciiEntries(i)) Then

        ' Use CDbl instead of CLng

        outputData = outputData & ChrW(CLng(CDbl(asciiEntries(i))))

    Else

        ' If the entry is not numeric, keep it as is

        outputData = outputData & asciiEntries(i)

    End If

Next i

This modification ensures that even larger numeric values are handled by using the Double data type. If you're still facing issues, consider checking the specific values in your ASCII entries that are causing the overflow. If these values are exceptionally large, you may need to explore alternative methods or data representations in your conversion process.







This is working good (but when it gets original unicodes then it changes that Why?  For i = LBound(asciiEntries) To UBound(asciiEntries)

    If IsNumeric(asciiEntries(i)) Then

        ' Use CDbl instead of CLng

        outputData = outputData & ChrW(CLng(CDbl(asciiEntries(i))))

    Else

        ' If the entry is not numeric, keep it as is

        outputData = outputData & asciiEntries(i)

    End If

Next i '''For i = LBound(asciiEntries) To UBound(asciiEntries)

ChatGPT

It seems there might be a misunderstanding in the conversion process. The use of CDbl and CLng may not be necessary for converting the ASCII entries to Unicode. In fact, using CDbl and CLng on Unicode code points might cause unexpected behavior.


If your ASCII entries are in the format &#xxxx; where xxxx is the Unicode code point, you can directly convert them to Unicode without the need for CDbl or CLng. Here's the corrected code:


vba

Copy code

' Convert ASCII entries to Unicode and concatenate them

For i = LBound(asciiEntries) To UBound(asciiEntries)

    If IsNumeric(asciiEntries(i)) Then

        ' Convert the numeric part to Unicode code point

        outputData = outputData & ChrW(CInt(asciiEntries(i)))

    Else

        ' If the entry is not numeric, keep it as is

        outputData = outputData & asciiEntries(i)

    End If

Next i

This code assumes that your ASCII entries are formatted as &#xxxx; where xxxx is a decimal Unicode code point. The CInt function is used to convert the numeric part directly to an integer without the need for CDbl or CLng. This should prevent the unintended changes to original Unicode characters.



Why does the above code removing আ from the  আত্মনির্ভরশীল when the data is like _2438;_2468;_2509;_2478;_2472;_2495;_2480;_2509;_2477;_2480;_2486;_2496;_2482;

আত্মনির্ভরশীল ???

ChatGPT

The issue you're encountering seems to be related to the formatting of your ASCII entries and how they are being processed. If your ASCII entries are prefixed with an underscore (_) and then followed by decimal numbers representing Unicode code points, the conversion logic needs to account for this underscore.


Assuming your data looks like _2438;_2468;_2509;_2478;_2472;_2495;_2480;_2509;_2477;_2480;_2486;_2496;_2482;, where the numbers represent Unicode code points for Bengali characters, you can modify the code as follows:


vba

Copy code

' Convert ASCII entries to Unicode and concatenate them

For i = LBound(asciiEntries) To UBound(asciiEntries)

    ' Check if the entry starts with an underscore

    If Left(asciiEntries(i), 1) = "_" Then

        ' Remove the underscore and convert the numeric part to Unicode code point

        outputData = outputData & ChrW(CInt(Mid(asciiEntries(i), 2)))

    Else

        ' If the entry doesn't start with an underscore, keep it as is

        outputData = outputData & asciiEntries(i)

    End If

Next i

This modification checks if each entry starts with an underscore. If it does, the underscore is removed before converting the numeric part to a Unicode code point using CInt. This should prevent the removal of characters like আ from the original text. Adjust the code accordingly based on the specific structure of your ASCII entries.




It does not keep আত্মনির্ভর kind of things as it is

ChatGPT

I see. If your ASCII entries are in the format _xxxx; and you want to preserve characters like আত্মনির্ভর, you should avoid processing those entries that don't represent ASCII characters. Here's an updated code to handle this:


vba

Copy code

' Convert ASCII entries to Unicode and concatenate them

For i = LBound(asciiEntries) To UBound(asciiEntries)

    ' Check if the entry starts with an underscore and ends with a semicolon

    If Left(asciiEntries(i), 1) = "_" And Right(asciiEntries(i), 1) = ";" Then

        ' Remove the underscore and semicolon, then convert the numeric part to Unicode code point

        outputData = outputData & ChrW(CInt(Mid(asciiEntries(i), 2, Len(asciiEntries(i)) - 2)))

    Else

        ' If the entry doesn't follow the expected format, keep it as is

        outputData = outputData & asciiEntries(i)

    End If

Next i

This modification ensures that the entry starts with an underscore and ends with a semicolon before processing it as an ASCII entry. If an entry doesn't follow this format, it will be kept as is in the output. Adjust the code according to the specific structure of your ASCII entries.





How to detect with vba that        আত্মনির্ভর        is bengali unicode?

ChatGPT

In VBA, you can detect whether a string contains Bengali Unicode characters by examining the Unicode code points of the characters in the string. Bengali Unicode characters typically fall within the range of Unicode code points U+0980 to U+09FF.


Here's a simple VBA function that checks if a given string contains Bengali Unicode characters:


vba

Copy code

Function SAAN_TO_CHECK___IsBengaliUnicode(inputString As String) As Boolean

    Dim charCode As Long

    Dim i As Integer

    

    ' Loop through each character in the string

    For i = 1 To Len(inputString)

        ' Get the Unicode code point of the current character

        charCode = AscW(Mid(inputString, i, 1))

        

        ' Check if the code point is within the Bengali Unicode range

        If charCode >= &H980 And charCode <= &H9FF Then

            ' Found a Bengali character

            SAAN_TO_CHECK___IsBengaliUnicode= True

            Exit Function

        End If

    Next i 

    

    ' No Bengali character found in the string

    SAAN_TO_CHECK___IsBengaliUnicode = False

End Function'''Function SAAN_TO_CHECK___IsBengaliUnicode(inputString As String) As Boolean




You can use this function by passing a string as an argument. It will return True if the string contains Bengali Unicode characters and False otherwise.


Example usage:


vba

Copy code

Sub TestIsBengaliUnicode()

    Dim testString As String

    testString = "আত্মনির্ভর"

    

    If IsBengaliUnicode(testString) Then

        MsgBox "The string contains Bengali Unicode characters."

    Else

        MsgBox "The string does not contain Bengali Unicode characters."

    End If

End Sub

Replace testString with your actual string to test whether it contains Bengali Unicode characters.





Why are these ¦   coming in output?

ChatGPT

The characters you are seeing (¦) might be due to a misinterpretation of the character encoding or a mismatch between the encoding of the source text and the encoding used in your VBA script.


In VBA, the default character set is often ANSI, and if you are working with non-ANSI characters (such as Bengali Unicode characters), you may encounter issues with character encoding.


To handle Unicode characters properly in VBA, you should make sure that you are using the correct character set and encoding. Here's an updated version of the IsBengaliUnicode function that explicitly uses the UTF-16 character set:


vba

Copy code

Function IsBengaliUnicode(inputString As String) As Boolean

    Dim charCode As Long

    Dim i As Integer

    

    ' Loop through each character in the string

    For i = 1 To Len(inputString)

        ' Get the Unicode code point of the current character

        charCode = AscW(Mid(inputString, i, 1))

        

        ' Check if the code point is within the Bengali Unicode range

        If charCode >= &H980 And charCode <= &H9FF Then

            ' Found a Bengali character

            IsBengaliUnicode = True

            Exit Function

        End If

    Next i

    

    ' No Bengali character found in the string

    IsBengaliUnicode = False

End Function

If you are still experiencing issues, consider checking the encoding of your source data and make sure it aligns with the character set used in your VBA environment. If your data is stored in a file, ensure that the file is saved with the correct encoding (UTF-8 or UTF-16) before processing it with VBA.




This is working fine to convert numerical values to unicode bengali text file.Please convert this vba code to c sharp code Public Sub SAAN_ASCII_FILES_AMPERSAND_HASH_ConvertAsciiToUnicode_UTF8___CLEANED()


    Dim inputFilePath As String

    Dim outputFilePath As String

    Dim inputData As String

    Dim outputData As String

    

     Dim RawoutputData As String

     

     

    Dim asciiEntries() As String

   ''' Dim i As Integer

   Dim i As Double

    Dim fso As Object

    Dim inputFile As Object

    Dim outputFile As Object

    

    ' Prompt user to select the input file

    inputFilePath = Application.GetOpenFilename("NORMAL AMPERSAND DOLLAR ASCII Text Files (*.txt), *.txt")

    

    ' Check if the user selected a file

    If inputFilePath = "False" Then

        MsgBox "No file selected. Exiting."

        Exit Sub

    End If

    

    ' Create a Scripting.FileSystemObject

    Set fso = CreateObject("Scripting.FileSystemObject")

    

    ' Read the content of the input file

    Set inputFile = fso.OpenTextFile(inputFilePath, 1) ' 1: ForReading

    inputData = inputFile.ReadAll

    inputFile.Close

    

    RawoutputData = inputData

    


 

 inputData = Replace(inputData, vbCrLf, vbCrLf & ";", 1, -1, vbTextCompare)

 

 

      

  inputData = Replace(inputData, "_", "&#", 1, -1, vbTextCompare)

  

  inputData = Replace(inputData, "&#", "", 1, -1, vbTextCompare)

    

    

    

    ' Split the input data into an array based on semicolon

    asciiEntries = Split(inputData, ";", -1, vbTextCompare)

    

    

    



For i = LBound(asciiEntries) To UBound(asciiEntries)

''' outputData = outputData & Str(i) & "           "




    If IsNumeric(asciiEntries(i)) Then

    

   

        ' Use CDbl instead of CLng

      '''  outputData = outputData & ChrW(CLng(CDbl(asciiEntries(i))))not necessary

       outputData = outputData & ChrW(((asciiEntries(i))))

    Else

    




'''If (SAAN_TO_CHECK___IsBengaliUnicode(ChrW(asciiEntries(i)))) Then

If (SAAN_TO_CHECK___IsBengaliUnicode((asciiEntries(i)))) Then

     outputData = outputData & "      it is bengali utf8  "

Else

'''else   If (SAAN_TO_CHECK___IsBengaliUnicode(asciiEntries(i))) Then

   

End If ''If (SAAN_TO_CHECK___IsBengaliUnicode(asciiEntries(i))) Then




        ' If the entry is not numeric, keep it as is

        outputData = outputData & asciiEntries(i)  '''& vbCrLf


    End If


Next i '''For i = LBound(asciiEntries) To UBound(asciiEntries)



    ' Prompt user to select the output file

   ''' outputFilePath = Application.GetSaveAsFilename("Unicode Output File (*.txt), *.txt")

    outputFilePath = inputFilePath & "_SAAN_CONVERTED_UTF8_FILES.TXT"             '''Application.GetSaveAsFilename("Unicode Output File (*.txt), *.txt")

    

    ' Check if the user selected a file

    If outputFilePath = "False" Then

        MsgBox "No output file selected. Exiting."

        Exit Sub

    End If

    

    ' Write the Unicode data to the output file

   ''' Set outputFile = fso.CreateTextFile(outputFilePath, True, False) ' True: Overwrite, False: Don't create Unicode file

   Set outputFile = fso.CreateTextFile(outputFilePath, True, True) ' True: Overwrite, True: create Unicode file

   

   

   

   

   Set rawoutputFile = fso.CreateTextFile(outputFilePath & "_raw.txt", True, True) ' True: Overwrite, True: create Unicode file

   rawoutputFile.Write RawoutputData

   rawoutputFile.Close

   

   

   

   

    outputFile.Write outputData

    outputFile.Close

    

    MsgBox "Conversion complete. Output file saved at: " & outputFilePath

End Sub '''Public Sub SAAN_ASCII_FILES_AMPERSAND_HASH_ConvertAsciiToUnicode_UTF8___CLEANED()

'''It seems there might be a misunderstanding in the conversion process. The use of CDbl and CLng may not be necessary for converting the ASCII entries to Unicode. In fact, using CDbl and CLng on Unicode code points might cause unexpected behavior.

'''

'''If your ASCII entries are in the format &#xxxx; where xxxx is the Unicode code point, you can directly convert them to Unicode without the need for CDbl or CLng. Here's the corrected code:

'''

'''VBA

'''Copy code

'''' Convert ASCII entries to Unicode and concatenate them

'''For i = LBound(asciiEntries) To UBound(asciiEntries)

'''    If IsNumeric(asciiEntries(i)) Then

'''        ' Convert the numeric part to Unicode code point

'''        outputData = outputData & ChrW(CInt(asciiEntries(i)))

'''    Else

'''        ' If the entry is not numeric, keep it as is

'''        outputData = outputData & asciiEntries(i)

'''    End If

'''Next i

'''This code assumes that your ASCII entries are formatted as &#xxxx; where xxxx is a decimal Unicode code point. The CInt function is used to convert the numeric part directly to an integer without the need for CDbl or CLng. This should prevent the unintended changes to original Unicode characters.

'''

'''




ChatGPT

Here is the equivalent C# code for the provided VBA script. Note that the VBA script is working with Microsoft Excel functions (Application.GetOpenFilename, MsgBox), and these do not have direct equivalents in a standalone C# console application. In the C# code below, I've used OpenFileDialog and MessageBox for similar functionality.


csharp

Copy code

using System;

using System.IO;

using System.Linq;


class Program

{

    static void Main()

    {

        SAAN_ASCII_FILES_AMPERSAND_HASH_ConvertAsciiToUnicode_UTF8_CLEANED();

    }


    static void SAAN_ASCII_FILES_AMPERSAND_HASH_ConvertAsciiToUnicode_UTF8_CLEANED()

    {

        string inputFilePath;

        string outputFilePath;

        string inputData;

        string outputData = string.Empty;


        // Prompt user to select the input file

        OpenFileDialog openFileDialog = new OpenFileDialog();

        openFileDialog.Filter = "NORMAL AMPERSAND DOLLAR ASCII Text Files (*.txt)|*.txt";


        if (openFileDialog.ShowDialog() == DialogResult.OK)

        {

            inputFilePath = openFileDialog.FileName;

        }

        else

        {

            Console.WriteLine("No file selected. Exiting.");

            return;

        }


        // Read the content of the input file

        inputData = File.ReadAllText(inputFilePath);


        string RawoutputData = inputData;


        inputData = inputData.Replace(Environment.NewLine, Environment.NewLine + ";");


        inputData = inputData.Replace("_", "&#");


        inputData = inputData.Replace("&#", "");


        // Split the input data into an array based on semicolon

        string[] asciiEntries = inputData.Split(new[] { ";" }, StringSplitOptions.None);


        for (int i = 0; i < asciiEntries.Length; i++)

        {

            if (double.TryParse(asciiEntries[i], out double numericValue))

            {

                // Convert the numeric part to Unicode code point

                outputData += (char)numericValue;

            }

            else

            {

                if (SAAN_TO_CHECK___IsBengaliUnicode(asciiEntries[i]))

                {

                    outputData += "      it is bengali utf8  ";

                }

                else

                {

                    // If the entry is not numeric, keep it as is

                    outputData += asciiEntries[i];

                }

            }

        }


        // Prompt user to select the output file

        SaveFileDialog saveFileDialog = new SaveFileDialog();

        saveFileDialog.Filter = "Unicode Output File (*.txt)|*.txt";

        saveFileDialog.FileName = inputFilePath + "_SAAN_CONVERTED_UTF8_FILES.TXT";


        if (saveFileDialog.ShowDialog() == DialogResult.OK)

        {

            outputFilePath = saveFileDialog.FileName;

        }

        else

        {

            Console.WriteLine("No output file selected. Exiting.");

            return;

        }


        // Write the Unicode data to the output file

        File.WriteAllText(outputFilePath, outputData, System.Text.Encoding.UTF8);


        Console.WriteLine($"Conversion complete. Output file saved at: {outputFilePath}");

    }


    static bool SAAN_TO_CHECK___IsBengaliUnicode(string inputString)

    {

        foreach (char c in inputString)

        {

            int charCode = c;


            if (charCode >= 0x0980 && charCode <= 0x09FF)

            {

                // Found a Bengali character

                return true;

            }

        }


        // No Bengali character found in the string

        return false;

    }

}

Please note that you'll need to add the necessary using directives and ensure you have the required references for OpenFileDialog and SaveFileDialog based on the UI framework you are using (e.g., Windows Forms, WPF). Additionally, the SAAN_TO_CHECK___IsBengaliUnicode method is adapted to iterate through characters in a C# string.




Please convert the bengali codes to numerical values for this code static bool SAAN_TO_CHECK___IsBengaliUnicode(string inputString)

    {

        foreach (char c in inputString)

        {

            int charCode = c;


            if (charCode >= 0x0980 && charCode <= 0x09FF)

            {

                // Found a Bengali character

                return true;

            }

        }


        // No Bengali character found in the string

        return false;

    }

ChatGPT

If you want to convert Bengali Unicode characters to their corresponding numerical values, you can modify the SAAN_TO_CHECK___IsBengaliUnicode method as follows:


csharp

Copy code

static bool SAAN_TO_CHECK___IsBengaliUnicode(string inputString)

{

    foreach (char c in inputString)

    {

        int charCode = c;


        if (charCode >= 0x0980 && charCode <= 0x09FF)

        {

            // Print the numerical value of the Bengali character

            Console.WriteLine($"Bengali Character: {c}, Numerical Value: {charCode}");

            return true;

        }

    }


    // No Bengali character found in the string

    return false;

}

This modified method will print the numerical value of each Bengali character found in the input string. You can replace the Console.WriteLine line with your desired logic for using or storing these numerical values.





Please write a vba code to generate one unicode file where take charCode >= &H980 And charCode <= &H9FF         any two at a time and insert  integer value of 2468 in between and then generate the  total triad as bengali unicode and log the outputs in new lines in the unicode file

ChatGPT

Certainly! Below is a VBA code that generates a Unicode file containing pairs of Bengali characters (charCode >= &H980 And charCode <= &H9FF) separated by the integer value 2468. The results are logged in new lines in the Unicode file.


vba

Copy code

Sub GenerateUnicodeFileWithPairs()

    Dim outputFilePath As String

    Dim outputFile As Object

    Dim charCode As Long

    Dim i As Integer

    

    ' Prompt user to select the output file

    outputFilePath = Application.GetSaveAsFilename("GENERATING Bengali Unicode Output File (*.txt), *.txt")

    

    ' Check if the user selected a file

    If outputFilePath = "False" Then

        MsgBox "No output file selected. Exiting."

        Exit Sub

    End If

    

    ' Write the pairs of Bengali characters and 2468 to the output file

    Set outputFile = CreateObject("Scripting.FileSystemObject").CreateTextFile(outputFilePath, True, True) ' True: Overwrite, True: create Unicode file

    

    For i = &H980 To &H9FF - 1 Step 2

        ' Generate triads with Bengali characters and 2468

        outputFile.WriteLine(ChrW(i) & ChrW(2468) & ChrW(i + 1))

    Next i

    

    ' Close the output file

    outputFile.Close

    

    MsgBox "Unicode file with pairs generated. Output file saved at: " & outputFilePath

End Sub

This code iterates through the Unicode code points from &H980 to &H9FF and generates pairs of Bengali characters separated by 2468. The results are written to the selected output file, with each triad logged on a new line.







Write a c sharp code for this Public Sub GenerateUnicodeFileWith_3_PLUS_CODES()

    Dim outputFilePath As String

    Dim outputFile As Object

    Dim charCode As Long

    Dim i As Integer

    

    Dim the_counter As Double

    

    the_counter = 0

    

    

    ' Prompt user to select the output file

    outputFilePath = Application.GetSaveAsFilename("GENERATING Bengali Unicode Output File (*.txt), *.txt")

    

    ' Check if the user selected a file

    If outputFilePath = "False" Then

        MsgBox "No output file selected. Exiting."

        Exit Sub

    End If

    

    ' Write the pairs of Bengali characters and 2468 to the output file

    Set outputFile = CreateObject("Scripting.FileSystemObject").CreateTextFile(outputFilePath + "_saan_s_3_plus_utf8_bengals.txt", True, True) ' True: Overwrite, True: create Unicode file

    

'''    For i = &H980 To &H9FF - 1 Step 2

'''        ' Generate triads with Bengali characters and 2468

'''        outputFile.WriteLine (ChrW(i) & ChrW(2468) & ChrW(i + 1))

'''    Next i

'''

'''

'''    For i = &H980 To &H9FF - 1 Step 2

'''        ' Generate triads with Bengali characters and 2468

'''        outputFile.WriteLine (ChrW(i) & ChrW(2468) & ChrW(i + 1))

'''    Next i

'''

    

    

    

    

    

    

    For i = &H980 To (&H9FF - 1) Step 1

     For k = &H980 To (&H9FF - 1) Step 1

     For r = &H980 To (&H9FF - 1) Step 1

     

      the_counter = the_counter + 1

        

       outputFile.WriteLine Str(the_counter) & "   " & Str(k) & "_2468_" & Str(i) & "_2468_" & Str(r) & "   " & (ChrW(k) & ChrW(2468) & ChrW(i) & ChrW(2468) & ChrW(r))

       

       

       the_counter = the_counter + 1

        

       outputFile.WriteLine Str(the_counter) & "   " & Str(k) & "_2468_" & Str(r) & "_2468_" & Str(i) & "   " & (ChrW(k) & ChrW(2468) & ChrW(r) & ChrW(2468) & ChrW(i))

 

 

 

 

 

 

 

     the_counter = the_counter + 1

        ' Generate triads with Bengali characters and 2468

        outputFile.WriteLine Str(the_counter) & "   " & Str(i) & "_2468_" & Str(k) & "_2468_" & Str(r) & "   " & (ChrW(i) & ChrW(2468) & ChrW(k) & ChrW(2468) & ChrW(r))

        

        

        the_counter = the_counter + 1

        

       outputFile.WriteLine Str(the_counter) & "   " & Str(i) & "_2468_" & Str(r) & "_2468_" & Str(k) & "   " & (ChrW(i) & ChrW(2468) & ChrW(r) & ChrW(2468) & ChrW(k))

        

        

        

       the_counter = the_counter + 1

        

       outputFile.WriteLine Str(the_counter) & "   " & Str(r) & "_2468_" & Str(i) & "_2468_" & Str(k) & "   " & (ChrW(r) & ChrW(2468) & ChrW(i) & ChrW(2468) & ChrW(k))

       

       

       the_counter = the_counter + 1

        

       outputFile.WriteLine Str(the_counter) & "   " & Str(r) & "_2468_" & Str(k) & "_2468_" & Str(i) & "   " & (ChrW(r) & ChrW(2468) & ChrW(k) & ChrW(2468) & ChrW(i))

       

       

        

        Next r

        Next k

    Next i '''For i = &H980 To (&H9FF - 1) Step 1

    

    


        

    For i = (&H9FF - 1) To &H980 Step -1

     For k = (&H9FF - 1) To &H980 Step -1

     For r = (&H9FF - 1) To &H980 Step -1

        ' Generate triads with Bengali characters and 2468

    '''     the_counter = the_counter + 1

         

        '''outputFile.WriteLine Str(the_counter) & "   " & (ChrW(i) & ChrW(2468) & ChrW(k))

    '''    outputFile.WriteLine Str(the_counter) & "   " & (ChrW(r) & ChrW(2468) & ChrW(k) & ChrW(2468) & ChrW(i))

    

    

      the_counter = the_counter + 1

        

       outputFile.WriteLine Str(the_counter) & "   " & Str(k) & "_2468_" & Str(i) & "_2468_" & Str(r) & "   " & (ChrW(k) & ChrW(2468) & ChrW(i) & ChrW(2468) & ChrW(r))

       

       

       the_counter = the_counter + 1

        

       outputFile.WriteLine Str(the_counter) & "   " & Str(k) & "_2468_" & Str(r) & "_2468_" & Str(i) & "   " & (ChrW(k) & ChrW(2468) & ChrW(r) & ChrW(2468) & ChrW(i))

 

 

 

 

 

 

 

     the_counter = the_counter + 1

        ' Generate triads with Bengali characters and 2468

        outputFile.WriteLine Str(the_counter) & "   " & Str(i) & "_2468_" & Str(k) & "_2468_" & Str(r) & "   " & (ChrW(i) & ChrW(2468) & ChrW(k) & ChrW(2468) & ChrW(r))

        

        

        the_counter = the_counter + 1

        

       outputFile.WriteLine Str(the_counter) & "   " & Str(i) & "_2468_" & Str(r) & "_2468_" & Str(k) & "   " & (ChrW(i) & ChrW(2468) & ChrW(r) & ChrW(2468) & ChrW(k))

        

        

        

       the_counter = the_counter + 1

        

       outputFile.WriteLine Str(the_counter) & "   " & Str(r) & "_2468_" & Str(i) & "_2468_" & Str(k) & "   " & (ChrW(r) & ChrW(2468) & ChrW(i) & ChrW(2468) & ChrW(k))

       

       

       the_counter = the_counter + 1

        

       outputFile.WriteLine Str(the_counter) & "   " & Str(r) & "_2468_" & Str(k) & "_2468_" & Str(i) & "   " & (ChrW(r) & ChrW(2468) & ChrW(k) & ChrW(2468) & ChrW(i))

       

    

    

    

    

        

        Next r

        Next k

    Next i '''For i = &H980 To (&H9FF - 1) Step 1

        

        

    ' Close the output file

    outputFile.Close

    

    MsgBox "Unicode file with pairs generated. Output file saved at: " & outputFilePath

End Sub '''Public Sub GenerateUnicodeFileWith_3_PLUS_CODES()




ChatGPT

Here is the equivalent C# code for the provided VBA script. Note that the VBA script is working with Excel-specific functions (Application.GetSaveAsFilename, MsgBox) which do not have direct equivalents in a standalone C# console application. In the C# code below, I've used SaveFileDialog and MessageBox for similar functionality.


csharp

Copy code

using System;

using System.IO;


class Program

{

    static void Main()

    {

        GenerateUnicodeFileWith_3_PLUS_CODES();

    }


    static void GenerateUnicodeFileWith_3_PLUS_CODES()

    {

        string outputFilePath;

        StreamWriter outputFile;

        double theCounter = 0;


        // Prompt user to select the output file

        SaveFileDialog saveFileDialog = new SaveFileDialog();

        saveFileDialog.Filter = "GENERATING Bengali Unicode Output File (*.txt)|*.txt";


        if (saveFileDialog.ShowDialog() == DialogResult.OK)

        {

            outputFilePath = saveFileDialog.FileName + "_saan_s_3_plus_utf8_bengals.txt";

        }

        else

        {

            Console.WriteLine("No output file selected. Exiting.");

            return;

        }


        // Write the triads of Bengali characters and 2468 to the output file

        using (outputFile = new StreamWriter(outputFilePath, false, System.Text.Encoding.UTF8))

        {

            for (int i = 0x980; i <= 0x9FF - 1; i++)

            {

                for (int k = 0x980; k <= 0x9FF - 1; k++)

                {

                    for (int r = 0x980; r <= 0x9FF - 1; r++)

                    {

                        theCounter++;


                        outputFile.WriteLine($"{theCounter}   {k}_2468_{i}_2468_{r}   {((char)k)}{(char)2468}{((char)i)}{(char)2468}{((char)r)}");


                        theCounter++;


                        outputFile.WriteLine($"{theCounter}   {k}_2468_{r}_2468_{i}   {((char)k)}{(char)2468}{((char)r)}{(char)2468}{((char)i)}");


                        theCounter++;


                        outputFile.WriteLine($"{theCounter}   {i}_2468_{k}_2468_{r}   {((char)i)}{(char)2468}{((char)k)}{(char)2468}{((char)r)}");


                        theCounter++;


                        outputFile.WriteLine($"{theCounter}   {i}_2468_{r}_2468_{k}   {((char)i)}{(char)2468}{((char)r)}{(char)2468}{((char)k)}");


                        theCounter++;


                        outputFile.WriteLine($"{theCounter}   {r}_2468_{i}_2468_{k}   {((char)r)}{(char)2468}{((char)i)}{(char)2468}{((char)k)}");


                        theCounter++;


                        outputFile.WriteLine($"{theCounter}   {r}_2468_{k}_2468_{i}   {((char)r)}{(char)2468}{((char)k)}{(char)2468}{((char)i)}");

                    }

                }

            }


            for (int i = 0x9FF - 1; i >= 0x980; i--)

            {

                for (int k = 0x9FF - 1; k >= 0x980; k--)

                {

                    for (int r = 0x9FF - 1; r >= 0x980; r--)

                    {

                        theCounter++;


                        outputFile.WriteLine($"{theCounter}   {k}_2468_{i}_2468_{r}   {((char)k)}{(char)2468}{((char)i)}{(char)2468}{((char)r)}");


                        theCounter++;


                        outputFile.WriteLine($"{theCounter}   {k}_2468_{r}_2468_{i}   {((char)k)}{(char)2468}{((char)r)}{(char)2468}{((char)i)}");


                        theCounter++;


                        outputFile.WriteLine($"{theCounter}   {i}_2468_{k}_2468_{r}   {((char)i)}{(char)2468}{((char)k)}{(char)2468}{((char)r)}");


                        theCounter++;


                        outputFile.WriteLine($"{theCounter}   {i}_2468_{r}_2468_{k}   {((char)i)}{(char)2468}{((char)r)}{(char)2468}{((char)k)}");


                        theCounter++;


                        outputFile.WriteLine($"{theCounter}   {r}_2468_{i}_2468_{k}   {((char)r)}{(char)2468}{((char)i)}{(char)2468}{((char)k)}");


                        theCounter++;


                        outputFile.WriteLine($"{theCounter}   {r}_2468_{k}_2468_{i}   {((char)r)}{(char)2468}{((char)k)}{(char)2468}{((char)i)}");

                    }

                }

            }

        }


        Console.WriteLine($"Unicode file with triads generated. Output file saved at: {outputFilePath}");

    }

}

In this C# code, I've used SaveFileDialog for selecting the output file and MessageBox for displaying messages. Also, I replaced Set outputFile = CreateObject("Scripting.FileSystemObject").CreateTextFile with StreamWriter for file writing operations. Ensure you have the necessary using directives and references in your C# project.








Write this with async await process

ChatGPT

Sure, if you're dealing with file I/O operations, it's common to use asynchronous methods to avoid blocking the main thread. However, in this specific case, file I/O operations in C# are not inherently asynchronous, so the actual writing to the file may not benefit much from async/await. The OpenFileDialog and SaveFileDialog also don't provide asynchronous options.


That said, if you have other asynchronous operations in your application and you want to keep the UI responsive, you can use async/await for those parts. Here's an example:


csharp

Copy code

using System;

using System.IO;

using System.Threading.Tasks;

using System.Windows.Forms;


class Program

{

    static async Task Main()

    {

        await GenerateUnicodeFileWith_3_PLUS_CODESAsync();

    }


    static async Task GenerateUnicodeFileWith_3_PLUS_CODESAsync()

    {

        string outputFilePath;

        double theCounter = 0;


        // Prompt user to select the output file

        outputFilePath = await GetSaveAsFilenameAsync("GENERATING Bengali Unicode Output File (*.txt)|*.txt");


        // Check if the user selected a file

        if (string.IsNullOrEmpty(outputFilePath))

        {

            Console.WriteLine("No output file selected. Exiting.");

            return;

        }


        // Write the triads of Bengali characters and 2468 to the output file

        using (StreamWriter outputFile = new StreamWriter(outputFilePath, false, System.Text.Encoding.UTF8))

        {

            for (int i = 0x980; i <= 0x9FF - 1; i++)

            {

                for (int k = 0x980; k <= 0x9FF - 1; k++)

                {

                    for (int r = 0x980; r <= 0x9FF - 1; r++)

                    {

                        theCounter++;


                        await outputFile.WriteLineAsync($"{theCounter}   {k}_2468_{i}_2468_{r}   {((char)k)}{(char)2468}{((char)i)}{(char)2468}{((char)r)}");


                        theCounter++;


                        await outputFile.WriteLineAsync($"{theCounter}   {k}_2468_{r}_2468_{i}   {((char)k)}{(char)2468}{((char)r)}{(char)2468}{((char)i)}");


                        theCounter++;


                        await outputFile.WriteLineAsync($"{theCounter}   {i}_2468_{k}_2468_{r}   {((char)i)}{(char)2468}{((char)k)}{(char)2468}{((char)r)}");


                        theCounter++;


                        await outputFile.WriteLineAsync($"{theCounter}   {i}_2468_{r}_2468_{k}   {((char)i)}{(char)2468}{((char)r)}{(char)2468}{((char)k)}");


                        theCounter++;


                        await outputFile.WriteLineAsync($"{theCounter}   {r}_2468_{i}_2468_{k}   {((char)r)}{(char)2468}{((char)i)}{(char)2468}{((char)k)}");


                        theCounter++;


                        await outputFile.WriteLineAsync($"{theCounter}   {r}_2468_{k}_2468_{i}   {((char)r)}{(char)2468}{((char)k)}{(char)2468}{((char)i)}");

                    }

                }

            }


            for (int i = 0x9FF - 1; i >= 0x980; i--)

            {

                for (int k = 0x9FF - 1; k >= 0x980; k--)

                {

                    for (int r = 0x9FF - 1; r >= 0x980; r--)

                    {

                        theCounter++;


                        await outputFile.WriteLineAsync($"{theCounter}   {k}_2468_{i}_2468_{r}   {((char)k)}{(char)2468}{((char)i)}{(char)2468}{((char)r)}");


                        theCounter++;


                        await outputFile.WriteLineAsync($"{theCounter}   {k}_2468_{r}_2468_{i}   {((char)k)}{(char)2468}{((char)r)}{(char)2468}{((char)i)}");


                        theCounter++;


                        await outputFile.WriteLineAsync($"{theCounter}   {i}_2468_{k}_2468_{r}   {((char)i)}{(char)2468}{((char)k)}{(char)2468}{((char)r)}");


                        theCounter++;


                        await outputFile.WriteLineAsync($"{theCounter}   {i}_2468_{r}_2468_{k}   {((char)i)}{(char)2468}{((char)r)}{(char)2468}{((char)k)}");


                        theCounter++;


                        await outputFile.WriteLineAsync($"{theCounter}   {r}_2468_{i}_2468_{k}   {((char)r)}{(char)2468}{((char)i)}{(char)2468}{((char)k)}");


                        theCounter++;


                        await outputFile.WriteLineAsync($"{theCounter}   {r}_2468_{k}_2468_{i}   {((char)r)}{(char)2468}{((char)k)}{(char)2468}{((char)i)}");

                    }

                }

            }

        }


        Console.WriteLine($"Unicode file with triads generated. Output file saved at: {outputFilePath}");

    }


    static Task<string> GetSaveAsFilenameAsync(string filter)

    {

        var tcs = new TaskCompletionSource<string>();


        Thread thread = new Thread(() =>

        {

            SaveFileDialog saveFileDialog = new SaveFileDialog();

            saveFileDialog.Filter = filter;


            if (saveFileDialog.ShowDialog() == DialogResult.OK)

            {

                tcs.SetResult(saveFileDialog.FileName);

            }

            else

            {

                tcs.SetResult(null);

            }

        });


        thread.SetApartmentState(ApartmentState.STA);

        thread.Start();


        return tcs.Task;

    }

}

This example introduces a helper method GetSaveAsFilenameAsync to simulate an asynchronous version of the file dialog. Please note that this method uses a TaskCompletionSource to await the result of the file dialog.













Please write a vba code for excel which can handle 300 megabytes of utf text file read its data and split with vbcrlf and then take only the lines which starts with _ and then split the lines with : remove the _  then convert the numbers to bengali unicodes and save the new unicode text file with bengali uniocodes only with vbcrlf after each bengali word

ChatGPT

Handling a 300-megabyte UTF-8 text file in Excel VBA can be challenging due to potential memory limitations. However, I can provide you with a basic code structure to get you started. Note that handling large files in Excel VBA might be slow or lead to performance issues.


vba

Copy code

Sub ProcessLargeTextFile()

    Dim inputFilePath As String

    Dim outputFilePath As String

    Dim inputData As String

    Dim outputData As String

    Dim lines() As String

    Dim i As Integer


    ' Prompt user to select the input file

    inputFilePath = Application.GetOpenFilename("Text Files (*.txt), *.txt")

    

    ' Check if the user selected a file

    If inputFilePath = "False" Then

        MsgBox "No file selected. Exiting."

        Exit Sub

    End If

    

    ' Read the content of the input file

    Open inputFilePath For Input As #1

    inputData = Input$(LOF(1), #1)

    Close #1


    ' Split the input data into lines

    lines = Split(inputData, vbCrLf)


    ' Process each line

    For i = LBound(lines) To UBound(lines)

        ' Check if the line starts with "_"

        If Left(lines(i), 1) = "_" Then

            ' Split the line using ":"

            Dim parts() As String

            parts = Split(Mid(lines(i), 2), ":")


            ' Process each part and convert numbers to Bengali Unicode

            Dim j As Integer

            For j = LBound(parts) To UBound(parts)

                If IsNumeric(parts(j)) Then

                    ' Convert the number to Bengali Unicode

                    parts(j) = ConvertToBengaliUnicode(CLng(parts(j)))

                End If

            Next j


            ' Join the parts and add to the output data

            outputData = outputData & Join(parts, ":") & vbCrLf

        End If

    Next i


    ' Prompt user to select the output file

    outputFilePath = Application.GetSaveAsFilename("Unicode Output File (*.txt), *.txt")

    

    ' Check if the user selected a file

    If outputFilePath = "False" Then

        MsgBox "No output file selected. Exiting."

        Exit Sub

    End If

    

    ' Write the Unicode data to the output file

    Open outputFilePath For Output As #2

    Print #2, outputData

    Close #2

    

    MsgBox "Conversion complete. Output file saved at: " & outputFilePath

End Sub


Function ConvertToBengaliUnicode(number As Long) As String

    ' Implement your logic to convert a number to Bengali Unicode

    ' This is just a placeholder, you need to replace it with your actual conversion logic

    ConvertToBengaliUnicode = ChrW(&H980 + number)

End Function

In this example, the code reads the entire content of the input text file, splits it into lines, processes each line that starts with "_" and contains ":". For numeric parts, it converts them to Bengali Unicode using the ConvertToBengaliUnicode function (replace it with your actual conversion logic). The final result is then saved to a new text file. Note that this is a basic example, and you may need to adjust it based on your specific requirements and file structure. Additionally, handling large files might require more advanced techniques, like reading and processing the file in chunks.




write a vba code to do fast fourier transformation on large sequence of numbers from very large text files (vbcrlf separated files) and generate a report in another text file

ChatGPT

Performing a Fast Fourier Transform (FFT) on a large sequence of numbers in VBA can be challenging due to the language's limitations and potential performance issues. Additionally, VBA may not be the best choice for handling very large datasets or complex numerical computations.


However, I can provide you with a basic example of how you might approach FFT using VBA. Keep in mind that this example is simplified, and for larger datasets, you may want to consider using a more powerful tool or programming language that is optimized for numerical computations.


vba

Copy code

Option Explicit


Sub FFTExample()

    Dim inputFilePath As String

    Dim outputFilePath As String

    Dim inputData As String

    Dim dataArray() As Double

    Dim fftResult() As Double

    Dim i As Long

    

    ' Prompt user to select the input file

    inputFilePath = Application.GetOpenFilename("Text Files (*.txt), *.txt")

    

    ' Check if the user selected a file

    If inputFilePath = "False" Then

        MsgBox "No file selected. Exiting."

        Exit Sub

    End If

    

    ' Read the content of the input file

    Open inputFilePath For Input As #1

    inputData = Input$(LOF(1), #1)

    Close #1


    ' Split the input data into an array of doubles

    dataArray = Split(inputData, vbCrLf)

    ReDim fftResult(1 To UBound(dataArray) + 1)


    ' Convert the string values to doubles

    For i = LBound(dataArray) To UBound(dataArray)

        dataArray(i) = CDbl(dataArray(i))

    Next i


    ' Perform FFT (Note: This is a simplified example)

    fftResult = FFT(dataArray)


    ' Prompt user to select the output file

    outputFilePath = Application.GetSaveAsFilename("FFT Output File (*.txt), *.txt")

    

    ' Check if the user selected a file

    If outputFilePath = "False" Then

        MsgBox "No output file selected. Exiting."

        Exit Sub

    End If

    

    ' Write the FFT result to the output file

    Open outputFilePath For Output As #2

    For i = LBound(fftResult) To UBound(fftResult)

        Print #2, fftResult(i)

    Next i

    Close #2

    

    MsgBox "FFT complete. Output file saved at: " & outputFilePath

End Sub


Function FFT(dataArray() As Double) As Double()

    ' Implement your FFT logic here

    ' This is a simplified example; you may need a more sophisticated FFT library

    

    ' Placeholder for FFT result (just a copy of the input for demonstration)

    FFT = dataArray

End Function

Note: The FFT function in this example is a placeholder and does not perform an actual FFT. For a real-world application, you would need to use a specialized library or tool for FFT computations, and VBA might not be the most efficient choice for such tasks. Additionally, FFT results can be complex numbers, and you may need to adapt the output format based on your specific requirements.








Please write a detailed exhaustive vba code for Function FFT(dataArray() As Double) As Double()

    ' Implement your FFT logic here

    ' This is a simplified example; you may need a more sophisticated FFT library

    

    ' Placeholder for FFT result (just a copy of the input for demonstration)

    FFT = dataArray

End Function

ChatGPT

Implementing a complete and detailed Fast Fourier Transform (FFT) algorithm in VBA can be quite complex due to the limitations of VBA and the intricate nature of FFT algorithms. However, I can provide you with a simple implementation of the Cooley-Tukey radix-2 Decimation in Time (DIT) algorithm, which is a widely used FFT algorithm.


This code performs a radix-2 FFT for a sequence of complex numbers (real and imaginary parts) represented as an array of Doubles. Note that this implementation assumes that the length of the input array is a power of 2.


vba

Copy code

Option Explicit


Function FFT(dataArray() As Double) As Double()

    Dim N As Long

    Dim halfN As Long

    Dim even() As Double, odd() As Double

    Dim complexRoots() As Double

    Dim k As Long, j As Long

    Dim twiddleFactorReal As Double, twiddleFactorImag As Double

    Dim theta As Double

    Dim result() As Double


    N = UBound(dataArray) + 1


    ' Base case: if the length is 1, return the input array as is

    If N = 1 Then

        ReDim result(1 To 2)

        result(1) = dataArray(1)

        result(2) = dataArray(2)

        FFT = result

        Exit Function

    End If


    ' Split the input array into even and odd parts

    halfN = N / 2

    ReDim even(1 To halfN * 2), odd(1 To halfN * 2)

    For j = 1 To halfN

        even(j * 2 - 1) = dataArray(j * 4 - 1)

        even(j * 2) = dataArray(j * 4)

        odd(j * 2 - 1) = dataArray(j * 4 - 2)

        odd(j * 2) = dataArray(j * 4 + 1)

    Next j


    ' Recursive FFT on even and odd parts

    even = FFT(even)

    odd = FFT(odd)


    ' Combine results

    ReDim result(1 To N * 2)

    For j = 1 To halfN

        ' Calculate twiddle factors

        theta = -2 * Application.Pi * (j - 1) / N

        twiddleFactorReal = Cos(theta)

        twiddleFactorImag = Sin(theta)


        ' Butterfly operation

        result(j * 2 - 1) = even(j * 2 - 1) + twiddleFactorReal * odd(j * 2 - 1) - twiddleFactorImag * odd(j * 2)

        result(j * 2) = even(j * 2) + twiddleFactorReal * odd(j * 2) + twiddleFactorImag * odd(j * 2 - 1)

        result((j + halfN) * 2 - 1) = even(j * 2 - 1) - twiddleFactorReal * odd(j * 2 - 1) + twiddleFactorImag * odd(j * 2)

        result((j + halfN) * 2) = even(j * 2) - twiddleFactorReal * odd(j * 2) - twiddleFactorImag * odd(j * 2 - 1)

    Next j


    FFT = result

End Function

To use this FFT function, you can provide an input array with alternating real and imaginary parts. The output will be a transformed array following the Cooley-Tukey radix-2 FFT algorithm. Keep in mind that this VBA implementation is not optimized for performance, and for large datasets, you might want to consider using specialized libraries or tools in languages like Python, MATLAB, or C/C++ that are better suited for numerical computations.







Suppose i supply any bengali unicode text file. Write a vba program to read that and split its lines to string array. Then split all its word tokens and then convert the words to numbers and report with ; separated strings in a separate text file as outputs accumulated

ChatGPT

Certainly! Below is an example VBA code that reads a Bengali Unicode text file, splits its lines into a string array, tokenizes the words, converts each word to a numeric representation, and finally reports the results in a separate text file:


vba

Copy code

Option Explicit


Sub ConvertBengaliTextToNumbers()

    Dim inputFilePath As String

    Dim outputFilePath As String

    Dim inputData As String

    Dim lines() As String

    Dim words() As String

    Dim numericWords() As String

    Dim i As Long, j As Long

    Dim word As String

    Dim outputData As String


    ' Prompt user to select the input file

    inputFilePath = Application.GetOpenFilename("Text Files (*.txt), *.txt")

    

    ' Check if the user selected a file

    If inputFilePath = "False" Then

        MsgBox "No file selected. Exiting."

        Exit Sub

    End If

    

    ' Read the content of the input file

    Open inputFilePath For Input As #1

    inputData = Input$(LOF(1), #1)

    Close #1


    ' Split the input data into lines

    lines = Split(inputData, vbCrLf)


    ' Process each line

    For i = LBound(lines) To UBound(lines)

        ' Split each line into words

        words = Split(lines(i), " ")


        ' Process each word

        For j = LBound(words) To UBound(words)

            ' Convert the word to a numeric representation

            word = words(j)

            If IsBengaliUnicode(word) Then

                ' Convert Bengali Unicode word to a numeric value (placeholder function)

                numericWords = ConvertBengaliToNumbers(word)

                ' Accumulate the results

                outputData = outputData & Join(numericWords, ";") & ";"

            Else

                ' If the word is not Bengali Unicode, keep it as is

                outputData = outputData & word & ";"

            End If

        Next j


        ' Add a line break after processing each line

        outputData = outputData & vbCrLf

    Next i


    ' Prompt user to select the output file

    outputFilePath = Application.GetSaveAsFilename("Numeric Output File (*.txt), *.txt")

    

    ' Check if the user selected a file

    If outputFilePath = "False" Then

        MsgBox "No output file selected. Exiting."

        Exit Sub

    End If

    

    ' Write the numeric data to the output file

    Open outputFilePath For Output As #2

    Print #2, outputData

    Close #2

    

    MsgBox "Conversion complete. Numeric output file saved at: " & outputFilePath

End Sub


Function IsBengaliUnicode(word As String) As Boolean

    ' Implement your logic to check if a word is Bengali Unicode

    ' This is a simplified example; you may need to enhance it

    ' based on your specific requirements

    ' For simplicity, it assumes that the word is Bengali if it contains any Bengali Unicode character

    IsBengaliUnicode = InStr(word, "অ") > 0 ' Add more characters as needed

End Function


Function ConvertBengaliToNumbers(bengaliWord As String) As String()

    ' Implement your logic to convert Bengali Unicode to numbers

    ' This is a placeholder function; you should replace it with your actual conversion logic

    Dim i As Long

    Dim result() As String

    ReDim result(1 To Len(bengaliWord))

    

    For i = 1 To Len(bengaliWord)

        ' Convert each Bengali character to a numeric value

        ' You need to define the conversion logic for Bengali characters

        result(i) = CStr(AscW(Mid(bengaliWord, i, 1)))

    Next i

    

    ConvertBengaliToNumbers = result

End Function

Note: This code is a basic example and might need adjustments based on your specific Bengali Unicode encoding and the desired numeric representation. Additionally, you may need to expand the IsBengaliUnicode function to cover a broader set of Bengali Unicode characters. The ConvertBengaliToNumbers function is a placeholder, and you should replace it with your actual logic for converting Bengali Unicode characters to numeric values.




We cannot type this in the Excel vba editor window. Please give alternative code for this line IsBengaliUnicode = InStr(word, "অ") > 0 ' Add more characters as needed

ChatGPT

Certainly, I understand that typing Bengali characters directly in the VBA editor might be challenging. Instead, you can use their Unicode values in the InStr function. Here's an alternative way to check if a word contains Bengali characters:


vba

Copy code

Function IsBengaliUnicode(word As String) As Boolean

    Dim bengaliCharacters As String

    bengaliCharacters = ChrW(&H0980) & ChrW(&H0981) ' Add more Bengali characters as needed

    

    Dim i As Long

    For i = 1 To Len(bengaliCharacters)

        If InStr(word, Mid(bengaliCharacters, i, 1)) > 0 Then

            IsBengaliUnicode = True

            Exit Function

        End If

    Next i

    

    IsBengaliUnicode = False

End Function

In this code, ChrW(&H0980) represents the Bengali character 'ঀ', and ChrW(&H0981) represents 'ঁ'. You can extend the bengaliCharacters string by adding more characters as needed.


Remember to replace these placeholder characters with actual Bengali characters you want to check for in your words. You can find the Unicode values for other Bengali characters and add them to the bengaliCharacters string accordingly.



Please write vba code to list all bengali characters bengaliCharacters = ChrW(&H980) & ChrW(&H981)   ' Add more Bengali characters as needed

ChatGPT

Certainly! Below is a VBA code snippet that lists all Bengali characters and assigns them to the bengaliCharacters string:


vba

Copy code

Sub ListBengaliCharacters()

    Dim bengaliCharacters As String

    Dim unicodeValue As Long

    Dim i As Long

    

    ' Initialize the string

    bengaliCharacters = ""

    

    ' Add Bengali characters to the string

    For i = &H980 To &H9FF

        unicodeValue = i

        bengaliCharacters = bengaliCharacters & ChrW(unicodeValue)

    Next i

    

    ' Display the list of Bengali characters

    MsgBox bengaliCharacters

End Sub

In this code, the loop iterates through Unicode values corresponding to Bengali characters (from &H980 to &H9FF), and it appends each character to the bengaliCharacters string using the ChrW function.


You can copy and paste this code into the VBA editor in Excel and run the ListBengaliCharacters subroutine. The message box will display the list of Bengali characters. You can then take this list and use it in your main VBA program for checking Bengali characters in words.





suppose i supply a double type value  DOUBLE_TYPE___PERIMETER and write a vba program to generate(calculate all coordinates of corners in anticlock order) for  a triangle , a convex quadrilateral , a convex pentagon , a convex hexagon , a convex heptagon , a convex octagon ,a n sided convex polygon where all its sides are in AP series

ChatGPT

Certainly! To generate coordinates for n-sided convex polygons where all sides are in an arithmetic progression (AP), you can use the following VBA code. The code calculates the coordinates of the vertices in an anticlockwise order.


vba

Copy code

Option Explicit


Sub GeneratePolygonCoordinates()

    Dim centerX As Double

    Dim centerY As Double

    Dim radius As Double

    Dim n As Integer

    Dim angleIncrement As Double

    Dim angles() As Double

    Dim coordinates() As Variant

    Dim i As Integer


    ' User input: center coordinates and radius

    centerX = InputBox("Enter X-coordinate of the center:")

    centerY = InputBox("Enter Y-coordinate of the center:")

    radius = InputBox("Enter the radius:")

    

    ' User input: number of sides

    n = InputBox("Enter the number of sides (3 or more):")


    ' Validate input

    If n < 3 Then

        MsgBox "Number of sides must be 3 or more. Exiting."

        Exit Sub

    End If


    ' Calculate angle increment

    angleIncrement = 360 / n


    ' Initialize arrays

    ReDim angles(1 To n)

    ReDim coordinates(1 To n, 1 To 2)


    ' Calculate angles and coordinates

    For i = 1 To n

        angles(i) = (i - 1) * angleIncrement

        coordinates(i, 1) = centerX + radius * Cos(DegToRad(angles(i)))

        coordinates(i, 2) = centerY + radius * Sin(DegToRad(angles(i)))

    Next i


    ' Output coordinates

    MsgBox "Coordinates of the vertices (anticlockwise order):" & vbCrLf & vbCrLf & GetCoordinatesString(coordinates)

End Sub


Function DegToRad(ByVal degrees As Double) As Double

    DegToRad = degrees * Application.WorksheetFunction.Pi / 180

End Function


Function GetCoordinatesString(coordinates() As Variant) As String

    Dim i As Integer

    Dim result As String

    

    For i = LBound(coordinates, 1) To UBound(coordinates, 1)

        result = result & "Vertex " & i & ": (" & coordinates(i, 1) & ", " & coordinates(i, 2) & ")" & vbCrLf

    Next i

    

    GetCoordinatesString = result

End Function

Copy and paste this code into the VBA editor in Excel, and then run the GeneratePolygonCoordinates subroutine. The program will prompt you for the center coordinates, radius, and the number of sides. It will then calculate and display the coordinates of the vertices in an anticlockwise order.


Make sure to adjust the input values as needed and ensure that the number of sides is 3 or more for a valid polygon.






Please rewrite the vba code where i will supply the perimeter value and number of sides required and not the x,y,radius. And also autocalculate the centerx,centery,radius and the common difference of AP series for side lengths of convex polygon accordingly if the polygon touch the horizontal x axis at (0,0) with its first vertex. Rewrite the code Public Sub GeneratePolygonCoordinates()

    Dim centerX As Double

    Dim centerY As Double

    Dim radius As Double

    Dim n As Integer

    Dim angleIncrement As Double

    Dim angles() As Double

    Dim coordinates() As Variant

    Dim i As Integer


    ' User input: center coordinates and radius

    centerX = InputBox("Enter X-coordinate of the center:")

    centerY = InputBox("Enter Y-coordinate of the center:")

    radius = InputBox("Enter the radius:")

    

    ' User input: number of sides

    n = InputBox("Enter the number of sides (3 or more):")


    ' Validate input

    If n < 3 Then

        MsgBox "Number of sides must be 3 or more. Exiting."

        Exit Sub

    End If


    ' Calculate angle increment

    angleIncrement = 360 / n


    ' Initialize arrays

    ReDim angles(1 To n)

    ReDim coordinates(1 To n, 1 To 2)


    ' Calculate angles and coordinates

    For i = 1 To n

        angles(i) = (i - 1) * angleIncrement

        coordinates(i, 1) = centerX + radius * Cos(DegToRad(angles(i)))

        coordinates(i, 2) = centerY + radius * Sin(DegToRad(angles(i)))

    Next i


    ' Output coordinates

    MsgBox "Coordinates of the vertices (anticlockwise order):" & vbCrLf & vbCrLf & GetCoordinatesString(coordinates)

End Sub '''Public Sub GeneratePolygonCoordinates()

ChatGPT

Certainly! Below is the modified VBA code where you can input the perimeter value and the number of sides, and the code will automatically calculate the center coordinates, radius, and the common difference of the AP series for side lengths of the convex polygon. The first vertex touches the horizontal x-axis at (0,0).


vba

Copy code

Option Explicit


Sub GeneratePolygonCoordinates()

    Dim perimeter As Double

    Dim n As Integer

    Dim commonDifference As Double

    Dim sideLengths() As Double

    Dim centerX As Double

    Dim centerY As Double

    Dim radius As Double

    Dim angleIncrement As Double

    Dim angles() As Double

    Dim coordinates() As Variant

    Dim i As Integer


    ' User input: perimeter and number of sides

    perimeter = InputBox("Enter the perimeter:")

    n = InputBox("Enter the number of sides (3 or more):")


    ' Validate input

    If n < 3 Then

        MsgBox "Number of sides must be 3 or more. Exiting."

        Exit Sub

    End If


    ' Calculate common difference for AP series of side lengths

    commonDifference = perimeter / n


    ' Initialize array for side lengths

    ReDim sideLengths(1 To n)


    ' Populate side lengths array

    For i = 1 To n

        sideLengths(i) = commonDifference * i

    Next i


    ' Calculate angle increment

    angleIncrement = 360 / n


    ' Initialize arrays

    ReDim angles(1 To n)

    ReDim coordinates(1 To n, 1 To 2)


    ' Calculate angles and coordinates

    For i = 1 To n

        angles(i) = (i - 1) * angleIncrement

        coordinates(i, 1) = radius * Cos(DegToRad(angles(i)))

        coordinates(i, 2) = radius * Sin(DegToRad(angles(i)))

    Next i


    ' Output coordinates

    MsgBox "Coordinates of the vertices (anticlockwise order):" & vbCrLf & vbCrLf & GetCoordinatesString(coordinates)

End Sub


Function DegToRad(ByVal degrees As Double) As Double

    DegToRad = degrees * Application.WorksheetFunction.Pi / 180

End Function


Function GetCoordinatesString(coordinates() As Variant) As String

    Dim i As Integer

    Dim result As String

    

    For i = LBound(coordinates, 1) To UBound(coordinates, 1)

        result = result & "Vertex " & i & ": (" & coordinates(i, 1) & ", " & coordinates(i, 2) & ")" & vbCrLf

    Next i

    

    GetCoordinatesString = result

End Function

Now, you can simply input the perimeter and the number of sides, and the code will automatically calculate the necessary parameters for the convex polygon.




What is the sum of AP series for initial value a and common difference d upto n terms?

ChatGPT

The sum (S) of an arithmetic progression (AP) series with the initial term 

a, common difference 

d, and 

n terms is given by the formula:


=

2

[

2

+

(

1

)

]

S= 

2

n

 [2a+(n−1)d]


So, the sum of the AP series can be calculated using this formula. If you have the values for 

a, 

d, and 

n, you can substitute them into the formula to find the sum.


User

Then please rewrite the code where initial side length is also to calculate (which is minimum for the condition) and the S is the perimeter and total sides is n   So calculate the d accordingly for the above code

ChatGPT

Certainly! If you want to determine the initial side length (

a) based on the given perimeter (

S), number of sides (

n), and calculate the common difference (

d), you can modify the code accordingly. Here's the updated VBA code:


vba

Copy code

Option Explicit


Sub GeneratePolygonCoordinates()

    Dim perimeter As Double

    Dim n As Integer

    Dim commonDifference As Double

    Dim initialSideLength As Double

    Dim sideLengths() As Double

    Dim centerX As Double

    Dim centerY As Double

    Dim radius As Double

    Dim angleIncrement As Double

    Dim angles() As Double

    Dim coordinates() As Variant

    Dim i As Integer


    ' User input: perimeter and number of sides

    perimeter = InputBox("Enter the perimeter:")

    n = InputBox("Enter the number of sides (3 or more):")


    ' Validate input

    If n < 3 Then

        MsgBox "Number of sides must be 3 or more. Exiting."

        Exit Sub

    End If


    ' Calculate initial side length (minimum for the condition)

    initialSideLength = perimeter / n


    ' Calculate common difference for AP series of side lengths

    commonDifference = initialSideLength


    ' Initialize array for side lengths

    ReDim sideLengths(1 To n)


    ' Populate side lengths array

    For i = 1 To n

        sideLengths(i) = initialSideLength + (i - 1) * commonDifference

    Next i


    ' Calculate angle increment

    angleIncrement = 360 / n


    ' Initialize arrays

    ReDim angles(1 To n)

    ReDim coordinates(1 To n, 1 To 2)


    ' Calculate angles and coordinates

    For i = 1 To n

        angles(i) = (i - 1) * angleIncrement

        coordinates(i, 1) = sideLengths(i) * Cos(DegToRad(angles(i)))

        coordinates(i, 2) = sideLengths(i) * Sin(DegToRad(angles(i)))

    Next i


    ' Output coordinates

    MsgBox "Coordinates of the vertices (anticlockwise order):" & vbCrLf & vbCrLf & GetCoordinatesString(coordinates)

End Sub


Function DegToRad(ByVal degrees As Double) As Double

    DegToRad = degrees * Application.WorksheetFunction.Pi / 180

End Function


Function GetCoordinatesString(coordinates() As Variant) As String

    Dim i As Integer

    Dim result As String

    

    For i = LBound(coordinates, 1) To UBound(coordinates, 1)

        result = result & "Vertex " & i & ": (" & coordinates(i, 1) & ", " & coordinates(i, 2) & ")" & vbCrLf

    Next i

    

    GetCoordinatesString = result

End Function

Now, the code calculates the initial side length based on the given perimeter and number of sides, and then computes the common difference and side lengths accordingly.












But these polygons are not closed polygons

ChatGPT

I apologize for the oversight. To generate closed polygons, we need to ensure that the last side length is equal to the initial side length. Here's the corrected VBA code:


vba

Copy code

Option Explicit


Sub GeneratePolygonCoordinates()

    Dim perimeter As Double

    Dim n As Integer

    Dim commonDifference As Double

    Dim initialSideLength As Double

    Dim sideLengths() As Double

    Dim centerX As Double

    Dim centerY As Double

    Dim radius As Double

    Dim angleIncrement As Double

    Dim angles() As Double

    Dim coordinates() As Variant

    Dim i As Integer


    ' User input: perimeter and number of sides

    perimeter = InputBox("Enter the perimeter:")

    n = InputBox("Enter the number of sides (3 or more):")


    ' Validate input

    If n < 3 Then

        MsgBox "Number of sides must be 3 or more. Exiting."

        Exit Sub

    End If


    ' Calculate initial side length (minimum for the condition)

    initialSideLength = perimeter / n


    ' Calculate common difference for AP series of side lengths

    commonDifference = initialSideLength


    ' Initialize array for side lengths

    ReDim sideLengths(1 To n)


    ' Populate side lengths array

    For i = 1 To n - 1

        sideLengths(i) = initialSideLength + (i - 1) * commonDifference

    Next i


    ' The last side length should be equal to the initial side length for a closed polygon

    sideLengths(n) = initialSideLength


    ' Calculate angle increment

    angleIncrement = 360 / n


    ' Initialize arrays

    ReDim angles(1 To n)

    ReDim coordinates(1 To n, 1 To 2)


    ' Calculate angles and coordinates

    For i = 1 To n

        angles(i) = (i - 1) * angleIncrement

        coordinates(i, 1) = sideLengths(i) * Cos(DegToRad(angles(i)))

        coordinates(i, 2) = sideLengths(i) * Sin(DegToRad(angles(i)))

    Next i


    ' Output coordinates

    MsgBox "Coordinates of the vertices (anticlockwise order):" & vbCrLf & vbCrLf & GetCoordinatesString(coordinates)

End Sub


Function DegToRad(ByVal degrees As Double) As Double

    DegToRad = degrees * Application.WorksheetFunction.Pi / 180

End Function


Function GetCoordinatesString(coordinates() As Variant) As String

    Dim i As Integer

    Dim result As String

    

    For i = LBound(coordinates, 1) To UBound(coordinates, 1)

        result = result & "Vertex " & i & ": (" & coordinates(i, 1) & ", " & coordinates(i, 2) & ")" & vbCrLf

    Next i

    

    GetCoordinatesString = result

End Function

This updated code ensures that the last side length is equal to the initial side length, resulting in closed polygons.












__________________________________________________________________________________________________________________________________________



tested codes in the excel



'''Public dxfFileObject_FOR_NEW_LAYOUT_DRAWINGS As Object

'''Public dxf_FILE_LAYOUTING As Object



Public SAANOWNCSVLINIERSCALEDDXFFORMIDIFileObject As Object

Public SAANOWNCSVLINIERSCALEDDXFFORMIDI_FILE As Object




Public Sub AnalyzePhonology()

    Dim wsInput As Worksheet

    Dim wsOutput As Worksheet

    Dim inputRange As Range

    Dim outputRow As Integer

    

    ' Set the input and output worksheets

    Set wsInput = ThisWorkbook.Sheets("Sheet1") ' Change "Sheet1" to the name of your input sheet

    Set wsOutput = ThisWorkbook.Sheets("Sheet2") ' Change "Sheet2" to the name of your output sheet

    

    ' Define the input range (assuming the poem is in column A starting from row 1)

    Set inputRange = wsInput.Range("A1:A" & wsInput.Cells(wsInput.Rows.Count, "A").End(xlUp).Row)

    

    ' Set up the output sheet

    wsOutput.Cells.Clear

    wsOutput.Cells(1, 1).value = "Line"

    wsOutput.Cells(1, 2).value = "Word Count"

    wsOutput.Cells(1, 3).value = "Syllable Count"

    wsOutput.Cells(1, 4).value = "Vowel Count"

    

    ' Initialize the output row

    outputRow = 2

    

    ' Loop through each line in the poem

    For Each cell In inputRange

        ' Analyze the line

        Dim line As String

        Dim words() As String

       Dim word As Variant

        Dim string_word As String

        Dim syllableCount As Integer

        Dim vowelCount As Integer

        

        line = cell.value

        words = Split(line, " ")

        

        ' Count syllables and vowels for each word

        For Each word In words

            syllableCount = syllableCount + CountSyllables(word)

            vowelCount = vowelCount + CountVowels(word)

        Next word

        

        ' Output the statistics to Sheet2

        wsOutput.Cells(outputRow, 1).value = line

        wsOutput.Cells(outputRow, 2).value = UBound(words) + 1 ' Word count

        wsOutput.Cells(outputRow, 3).value = syllableCount

        wsOutput.Cells(outputRow, 4).value = vowelCount

        

        ' Move to the next row in the output sheet

        outputRow = outputRow + 1

    Next cell

End Sub 'Public Sub AnalyzePhonology()



''''''Public Function CountSyllables(word As String) As Integer


Public Function CountSyllables(word As Variant) As Integer

    ' Simple function to count syllables (adjust as needed)

    ' This function assumes one vowel sound per vowel letter

    

    Dim i As Integer

    Dim syllableCount As Integer

    Dim lastChar As String

    

    word = LCase(word)

    lastChar = Right(word, 1)

    

    If lastChar = "e" Then

        word = Left(word, Len(word) - 1) ' Remove silent "e"

    End If

    

    ' Count vowel sounds

    For i = 1 To Len(word)

        If InStr("aeiouy", Mid(word, i, 1)) > 0 Then

            syllableCount = syllableCount + 1

        End If

    Next i

    

    CountSyllables = syllableCount

End Function 'Public Function CountSyllables(word As String) As Integer




'''Public Function CountVowels(word As String) As Integer


Public Function CountVowels(word As Variant) As Integer

    ' Simple function to count vowels in a word

    

    Dim i As Integer

    Dim vowelCount As Integer

    

    word = LCase(word)

    

    ' Count vowel letters

    For i = 1 To Len(word)

        If InStr("aeiouy", Mid(word, i, 1)) > 0 Then

            vowelCount = vowelCount + 1

        End If

    Next i

    

    CountVowels = vowelCount

End Function 'Public Function CountVowels(word As String) As Integer



Public Sub AlphabetFrequencyDistribution()

    Dim lyric As String

    Dim alphabet As String

    Dim i As Integer

    Dim frequency As Integer

    Dim alphabetCount As Collection

    

    ' Initialize collection to store alphabet frequency

    Set alphabetCount = New Collection

    

    ' Get the lyric from the user (assumes the lyric is in cell A1)

    lyric = ThisWorkbook.Sheets("Sheet1").Range("C1").value

    

    ' Loop through each character in the lyric

    For i = 1 To Len(lyric)

        ' Extract the alphabet (ignores non-alphabetic characters)

        alphabet = UCase(Mid(lyric, i, 1))

        If alphabet Like "[A-Z]" Then

            ' Increment the frequency count for the alphabet

            On Error Resume Next

            frequency = alphabetCount(alphabet)

            If Err.number <> 0 Then

                alphabetCount.Add 1, alphabet

            Else

                alphabetCount(alphabet) = frequency + 1

            End If

            On Error GoTo 0

        End If

    Next i

    

    ' Output the frequency distribution to a new sheet (assumes Sheet2 is available)

    Dim outputSheet As Worksheet

    Set outputSheet = ThisWorkbook.Sheets("Sheet2")

    outputSheet.Cells.Clear

    outputSheet.Cells(1, 1).value = "Alphabet"

    outputSheet.Cells(1, 2).value = "Frequency"

    

    ' Populate the output sheet with alphabet frequencies

    For i = 1 To alphabetCount.Count

        outputSheet.Cells(i + 1, 1).value = alphabetCount(i)

        outputSheet.Cells(i + 1, 2).value = alphabetCount(alphabetCount(i))

    Next i

End Sub 'Public Sub AlphabetFrequencyDistribution()




Public Sub FilterSyllables()

    Dim lyric As String

    Dim syllable As String

    Dim i As Integer

    Dim syllablesCollection As Collection

    

    ' Initialize collection to store syllables

    Set syllablesCollection = New Collection

    

    ' Get the lyric from the user (assumes the lyric is in cell A1)

    lyric = ThisWorkbook.Sheets("Sheet1").Range("C1").value

    

    ' Loop through each character in the lyric

    For i = 1 To Len(lyric)

        ' Extract the syllable (assumes simple syllable extraction)

        syllable = GetSyllable(Mid(lyric, i, 1))

        If syllable <> "" Then

            ' Add the syllable to the collection

            On Error Resume Next

            syllablesCollection.Add syllable

            On Error GoTo 0

        End If

    Next i

    

    ' Output the syllables to a new column (assumes Sheet2 is available)

    Dim outputSheet As Worksheet

    Set outputSheet = ThisWorkbook.Sheets("Sheet2")

    outputSheet.Cells.Clear

    outputSheet.Cells(1, 1).value = "Syllables"

    

    ' Populate the output sheet with syllables

    For i = 1 To syllablesCollection.Count

        outputSheet.Cells(i + 1, 1).value = syllablesCollection(i)

    Next i

End Sub 'Public Sub FilterSyllables()


Public Function GetSyllable(character As String) As String

    ' Simple function to identify syllables (customize as needed)

    ' This function assumes one syllable per character

    

    If character Like "[AEIOUYaeiouy]" Then

        GetSyllable = character

    Else

        GetSyllable = ""

    End If

End Function 'Public Function GetSyllable(character As String) As String




'''Public Sub BengaliToEnglishTransliteration()

'''    Dim ws As Worksheet

'''    Dim cell As Range

'''    Dim bengaliText As String

'''    Dim englishText As String

'''

'''    ' Set the worksheet

'''    Set ws = ThisWorkbook.Sheets("Sheet1")

'''

'''    ' Loop through cells C2 to C3000

'''    For Each cell In ws.Range("C2:C3000")

'''        ' Get Bengali Unicode text

'''        bengaliText = cell.Value

'''

'''        ' Perform transliteration (replace with your own mapping)

'''        englishText = TransliterateBengaliToEnglish(bengaliText)

'''

'''        ' Output English text to corresponding cell in column D

'''        cell.Offset(0, 1).Value = englishText

'''    Next cell

'''End Sub 'Public Sub BengaliToEnglishTransliteration()

'''

'''Public Function TransliterateBengaliToEnglish(bengaliText As String) As String

'''    ' Simplified mapping (replace with a more comprehensive mapping)

'''    ' This example assumes a direct character replacement

'''    Dim mapping As Object

'''    Set mapping = CreateObject("Scripting.Dictionary")

'''    mapping.Add("ff", "a")

'''    mapping.Add("?", "aa")

'''    ' Add more mapping entries as needed

'''

'''    Dim result As String

'''    Dim i As Integer

'''

'''    ' Loop through each character in the Bengali text

'''    For i = 1 To Len(bengaliText)

'''        Dim charBengali As String

'''        charBengali = Mid(bengaliText, i, 1)

'''

'''        ' Check if the character exists in the mapping

'''        If mapping.Exists(charBengali) Then

'''            ' Append the corresponding English character to the result

'''            result = result & mapping(charBengali)

'''        Else

'''            ' If no mapping is found, keep the original character

'''            result = result & charBengali

'''        End If

'''    Next i

'''

'''    ' Return the transliterated text

'''    TransliterateBengaliToEnglish = result

'''End Function




Public Function BreakIntoSyllables(inputText As String) As String

    Dim outputText As String

    Dim i As Integer


    ' Loop through each character in the input text

    For i = 1 To Len(inputText)

        Dim currentChar As String

        currentChar = Mid(inputText, i, 1)


        ' Check if the current character is a space or a letter

        If currentChar = " " Then

            ' If it's a space, append it to the output

            outputText = outputText & " "

        ElseIf currentChar Like "[A-Za-z]" Then

            ' If it's a letter, append it to the output

            outputText = outputText & currentChar

        Else

            ' If it's any other character, replace it with an underscore

            outputText = outputText & "_"

        End If

    Next i


    ' Return the result

    BreakIntoSyllables = outputText

End Function '''Public Function BreakIntoSyllables(inputText As String) As String



Public Function ConvertBengaliToEnglishASCII(inputText As String) As String

    Dim bengaliChars As Variant

    bengaliChars = Array(ChrW(&H985), "o", ChrW(&H986), "a", ChrW(&H987), "ee", ChrW(&H988), "i", ChrW(&H989), "oo", ChrW(&H98A), "u", ChrW(&H98B), "ri", ChrW(&H98C), "e", ChrW(&H98F), "oi", ChrW(&H990), "o", ChrW(&H993), "ou", ChrW(&H994), "k", ChrW(&H995), "kh", ChrW(&H996), "g", ChrW(&H997), "gh", ChrW(&H998), "ng", ChrW(&H999), "ch", ChrW(&H99A), "chh", ChrW(&H99B), "j", ChrW(&H99C), "jh", ChrW(&H99D), "n", ChrW(&H99E), "t", ChrW(&H99F), "th", ChrW(&H9A0), "d", ChrW(&H9A1), "dh", ChrW(&H9A2), "n", ChrW(&H9A3), "t", ChrW(&H9A4), "th", ChrW(&H9A5), "d", ChrW(&H9A6), "dh", _

        ChrW(&H9A7), "n", ChrW(&H9A8), "p", ChrW(&H9AA), "ph", ChrW(&H9AB), "b", ChrW(&H9AC), "bh", ChrW(&H9AD), "m", ChrW(&H9AE), "y", ChrW(&H9AF), "r", ChrW(&H9B0), "l", ChrW(&H9B2), "sh", ChrW(&H9B6), "s", ChrW(&H9B7), "h", ChrW(&H9B8), "ksh", ChrW(&H9B9), "tra", ChrW(&H9BC), "gya", ChrW(&H9BD), "t", ChrW(&H9BE), "a", ChrW(&H9BF), "i", ChrW(&H9C0), "ii", ChrW(&H9C1), "u", ChrW(&H9C2), "uu", ChrW(&H9C3), "ri", ChrW(&H9C4), "e", ChrW(&H9C7), "oi", ChrW(&H9C8), "o", ChrW(&H9CB), "ou", ChrW(&H9CC), "h")


    Dim result As String

    result = ""


    Dim i As Integer

    For i = 1 To Len(inputText)

        Dim currentChar As String

        currentChar = Mid(inputText, i, 1)


        ' Check if the character is in the mapping

        Dim mappingIndex As Integer

        mappingIndex = -1

        For j = LBound(bengaliChars) To UBound(bengaliChars) Step 2

            If bengaliChars(j) = currentChar Then

                mappingIndex = j + 1

                Exit For

            End If

        Next j


        ' Append the corresponding English ASCII code to the result

        If mappingIndex > 0 Then

            result = result & bengaliChars(mappingIndex)

        Else

            ' If the character is not in the mapping, keep it as is

            result = result & currentChar

        End If

    Next i


    ' Return the result

    ConvertBengaliToEnglishASCII = result

End Function '''Public  Function ConvertBengaliToEnglishASCII(inputText As String) As String



Public Function ConvertBengaliToEnglishASCII_NEW(inputText As String) As String

    Dim bengaliChars As Variant

    bengaliChars = Array( _

        ChrW(&H985), "o", ChrW(&H986), "a", ChrW(&H987), "ee", ChrW(&H988), "i", _

        ChrW(&H989), "oo", ChrW(&H98A), "u", ChrW(&H98B), "ri", ChrW(&H98C), "e", _

        ChrW(&H98F), "oi", ChrW(&H990), "o", ChrW(&H993), "ou", ChrW(&H994), "k", _

        ChrW(&H995), "kh", ChrW(&H996), "g", ChrW(&H997), "gh", ChrW(&H998), "ng", _

        ChrW(&H999), "ch", ChrW(&H99A), "chh", ChrW(&H99B), "j", ChrW(&H99C), "jh", _

        ChrW(&H99D), "n", ChrW(&H99E), "t", ChrW(&H99F), "th", ChrW(&H9A0), "d", _

        ChrW(&H9A1), "dh", ChrW(&H9A2), "n", ChrW(&H9A3), "t", ChrW(&H9A4), "th", _

        ChrW(&H9A5), "d", ChrW(&H9A6), "dh", ChrW(&H9A7), "n", ChrW(&H9A8), "p", _

        ChrW(&H9AA), "ph", ChrW(&H9AB), "b", ChrW(&H9AC), "bh", ChrW(&H9AD), "m", _

        ChrW(&H9AE), "y", ChrW(&H9AF), "r", ChrW(&H9B0), "l", ChrW(&H9B2), "sh", _

        ChrW(&H9B6), "s", ChrW(&H9B7), "h", ChrW(&H9B8), "ksh", ChrW(&H9B9), "tra", _

        ChrW(&H9BC), "gya", ChrW(&H9BD), "t", ChrW(&H9BE), "a", ChrW(&H9BF), "i", _

        ChrW(&H9C0), "ii", ChrW(&H9C1), "u", ChrW(&H9C2), "uu", ChrW(&H9C3), "ri", _

        ChrW(&H9C4), "e", ChrW(&H9C7), "oi", ChrW(&H9C8), "o", ChrW(&H9CB), "ou" _

    )


    Dim result As String

    result = ""


    Dim i As Integer

    For i = 1 To Len(inputText)

        Dim currentChar As String

        currentChar = Mid(inputText, i, 1)


        ' Check if the character is in the mapping

        Dim mappingIndex As Integer

        mappingIndex = -1

        For j = LBound(bengaliChars) To UBound(bengaliChars) Step 2

            If StrComp(bengaliChars(j), currentChar, vbTextCompare) = 0 Then

                mappingIndex = j + 1

                Exit For

            End If

        Next j


        ' Append the corresponding English ASCII code to the result

        If mappingIndex > 0 Then

            result = result & bengaliChars(mappingIndex)

        Else

            ' If the character is not in the mapping, keep it as is

            result = result & currentChar

        End If

    Next i


    ' Return the result

    ConvertBengaliToEnglishASCII_NEW = result

End Function '''Public Function ConvertBengaliToEnglishASCII_NEW(inputText As String) As String


Public Function ConvertEnglishToBengaliASCII_NEW(inputText As String) As String

    Dim bengaliChars As Variant

    bengaliChars = Array( _

        "ri", ChrW(&H9C3), "oo", ChrW(&H989), "o", ChrW(&H985), "a", ChrW(&H986), "ee", ChrW(&H987), _

        "oi", ChrW(&H9C7), "ou", ChrW(&H9CB), "i", ChrW(&H988), "ri", ChrW(&H98B), "e", ChrW(&H98C), _

        "oi", ChrW(&H98F), "o", ChrW(&H990), "ou", ChrW(&H993), "kh", ChrW(&H995), _

         "k", ChrW(&H994), "gh", ChrW(&H997), "g", ChrW(&H996), "ng", ChrW(&H998), _

        "ch", ChrW(&H999), "chh", ChrW(&H99A), "j", ChrW(&H99B), "jh", ChrW(&H99C), _

        "n", ChrW(&H99D), "th", ChrW(&H99F), "t", ChrW(&H99E), "d", ChrW(&H9A0), _

        "dh", ChrW(&H9A1), "n", ChrW(&H9A2), "t", ChrW(&H9A3), "th", ChrW(&H9A4), _

        "d", ChrW(&H9A5), "dh", ChrW(&H9A6), "n", ChrW(&H9A7), "p", ChrW(&H9A8), _

        "ph", ChrW(&H9AA), "bh", ChrW(&H9AC), "b", ChrW(&H9AB), "m", ChrW(&H9AD), _

        "y", ChrW(&H9AE), "l", ChrW(&H9AF), "sh", ChrW(&H9B0), "r", ChrW(&H9B2), _

         "s", ChrW(&H9B6), "h", ChrW(&H9B7), "ksh", ChrW(&H9B8), "tra", ChrW(&H9B9), _

         "gya", ChrW(&H9BC), "t", ChrW(&H9BD), "a", ChrW(&H9BE), "i", ChrW(&H9BF), _

         "ii", ChrW(&H9C0), "u", ChrW(&H9C1), "uu", ChrW(&H9C2), _

         "e", ChrW(&H9C4), "o", ChrW(&H9C8), "u", ChrW(&H98A) _

    )


    Dim result As String

    result = ""


    Dim i As Integer

    For i = 1 To Len(inputText)

        Dim currentChar As String

        currentChar = Mid(inputText, i, 1)


        ' Check if the character is in the mapping

        Dim mappingIndex As Integer

        mappingIndex = -1

        For j = LBound(bengaliChars) To UBound(bengaliChars) Step 2

            If StrComp(bengaliChars(j), currentChar, vbTextCompare) = 0 Then

                mappingIndex = j + 1

                Exit For

            End If

        Next j


        ' Append the corresponding English ASCII code to the result

        If mappingIndex > 0 Then

            result = result & bengaliChars(mappingIndex)

        Else

            ' If the character is not in the mapping, keep it as is

            result = result & currentChar

        End If

    Next i


    ' Return the result

    ConvertEnglishToBengaliASCII_NEW = result

End Function '''Public Function ConvertEnglishToBengaliASCII_NEW(inputText As String) As String



Public Function ReplaceBengaliPatterns(inputText As String) As String

    Dim patternsToReplace As Variant

    inputText = LCase(inputText) '''saan adds this

    patternsToReplace = Array("ksh", "ko", "o", "a", "ee", "i", "oo", "u", "ri", "e", "oi", "o", "ou", _

        "k", "kh", "gh", "g", "ng", "chh", "ch", "jh", "j", "n", _

       "th", "t", "dh", "d", "n", "th", "t", "dh", "d", "n", _

        "ph", "p", "bh", "b", "m", "y", "r", "l", "sh", "s", "h", _

         "tra", "gya", "t", "a", "i", "ii", "uu", "u", "ri", _

        "e", "ou", "oi", "o", "h ")


    Dim replacement As String

    replacement = "_"


    Dim result As String

    result = inputText


    Dim i As Integer

    For i = LBound(patternsToReplace) To UBound(patternsToReplace)

        result = Replace(result, LCase(patternsToReplace(i)), replacement & LCase(patternsToReplace(i)) & replacement)

    Next i


    ReplaceBengaliPatterns = result

End Function '''Public Function ReplaceBengaliPatterns(inputText As String) As String


'''Sub TestReplaceBengaliPatterns()

'''    Dim inputText As String

'''    inputText = "Your input text goes here."

'''

'''    Dim outputText As String

'''    outputText = ReplaceBengaliPatterns(inputText)

'''

'''    MsgBox outputText

'''End Sub

'''Replace "Your input text goes here." with the actual text you want to process. This code will replace the specified Bengali patterns according to your requirements.

'''

'''

'''


Public Function ReplaceBengaliPatterns_REGEXES(inputText As String) As String

    Dim regex As Object

    Set regex = CreateObject("VBScript.RegExp")

    

    ' Bengali characters and combinations

    Dim pattern As String

    pattern = "([\u0981-\u0983])|([\u0985-\u0994])|([\u0995-\u09B9])|([\u09BC-\u09CE])|([\u09BE-\u09C4\u09C7-\u09CC])|([\u09C8-\u09CB\u09CC-\u09CD])"


    With regex

        .Global = True

        .IgnoreCase = False

        .MultiLine = False

        .pattern = pattern

    End With


    Dim matches As Object

    Set matches = regex.Execute(inputText)


    Dim result As String

    result = inputText


    Dim match As Variant

    For Each match In matches

        result = Replace(result, match.value, "_" & match.value & "_")

    Next match


    ReplaceBengaliPatterns_REGEXES = result

End Function '''public Function ReplaceBengaliPatterns_REGEXES(inputText As String) As String


Public Function ConvertBengaliToEnglishASCII_NEW___SPECIAL(inputText As String) As String

    Dim bengaliChars As Variant

    bengaliChars = Array( _

        ChrW(&H985), "o", ChrW(&H986), "a", ChrW(&H987), "ee", ChrW(&H988), "i", _

        ChrW(&H989), "oo", ChrW(&H98A), "u", ChrW(&H98B), "ri", ChrW(&H98C), "e", _

        ChrW(&H98F), "oi", ChrW(&H990), "o", ChrW(&H993), "ou", ChrW(&H994), "k", _

        ChrW(&H995), "kh", ChrW(&H996), "g", ChrW(&H997), "gh", ChrW(&H998), "ng", _

        ChrW(&H999), "ch", ChrW(&H99A), "chh", ChrW(&H99B), "j", ChrW(&H99C), "jh", _

        ChrW(&H99D), "n", ChrW(&H99E), "t", ChrW(&H99F), "th", ChrW(&H9A0), "d", _

        ChrW(&H9A1), "dh", ChrW(&H9A2), "n", ChrW(&H9A3), "t", ChrW(&H9A4), "th", _

        ChrW(&H9A5), "d", ChrW(&H9A6), "dh", ChrW(&H9A7), "n", ChrW(&H9A8), "p", _

        ChrW(&H9AA), "ph", ChrW(&H9AB), "b", ChrW(&H9AC), "bh", ChrW(&H9AD), "m", _

        ChrW(&H9AE), "y", ChrW(&H9AF), "r", ChrW(&H9B0), "l", ChrW(&H9B2), "sh", _

        ChrW(&H9B6), "s", ChrW(&H9B7), "h", ChrW(&H9B8), "ksh", ChrW(&H9B9), "tra", _

        ChrW(&H9BC), "gya", ChrW(&H9BD), "t", ChrW(&H9BE), "a", ChrW(&H9C0), "ii", _

        ChrW(&H9BF), "i", ChrW(&H9C1), "uu", ChrW(&H9C3), "u", ChrW(&H9C2), "ri", _

        ChrW(&H9C4), "e", ChrW(&H9C7), "oi", ChrW(&H9C8), "o", ChrW(&H9CB), "ou" _

    )


    Dim result As String

    result = ""


inputText = ReplaceBengaliPatterns_REGEXES(inputText)



    Dim i As Integer

    For i = 1 To Len(inputText)

        Dim currentChar As String

        currentChar = Mid(inputText, i, 1)


        ' Check if the character is in the mapping

        Dim mappingIndex As Integer

        mappingIndex = -1

        For j = LBound(bengaliChars) To UBound(bengaliChars) Step 2

            If StrComp(bengaliChars(j), currentChar, vbTextCompare) = 0 Then

                mappingIndex = j + 1

                Exit For

            End If

        Next j


        ' Append the corresponding English ASCII code to the result

        If mappingIndex > 0 Then

            result = result & bengaliChars(mappingIndex)

        Else

            ' If the character is not in the mapping, keep it as is

            result = result & currentChar

        End If

    Next i


    ' Return the result

    ConvertBengaliToEnglishASCII_NEW___SPECIAL = result

End Function '''Public Function ConvertBengaliToEnglishASCII_NEW___SPECIAL(inputText As String) As String



Public Sub ExportToCSV()

'''    Dim ws As Worksheet

'''    Dim dataRange As Range

'''    Dim outputFilePath As String

'''    Dim cell As Range

'''    Dim value As Variant

'''

'''    ' Set the worksheet

'''    Set ws = ThisWorkbook.Sheets("Sheet3")

'''

'''    ' Set the range to A2:N30000

'''    Set dataRange = ws.Range("A2:N30000")

'''

'''    ' Define the output file path

'''    outputFilePath = Application.GetSaveAsFilename(InitialFileName:="output.csv", FileFilter:="CSV (Comma delimited) (*.csv), *.csv")

'''

'''    ' Check if the user canceled the file selection

'''    If outputFilePath = "False" Then

'''        Exit Sub

'''    End If

'''

'''    ' Open the file for writing

'''    Open outputFilePath For Output As #1

'''

'''    ' Loop through each cell in the range

'''    For Each cell In dataRange

'''        ' Get the cell value

'''        value = cell.value

'''

'''        ' Check if the value is numeric and format accordingly

'''        If IsNumeric(value) Then

'''            Print #1, Format$(value, "0.##########") ' Adjust the number of decimals as needed

'''        Else

'''            Print #1, value

'''        End If

'''    Next cell

'''

'''    ' Close the file

'''    Close #1

'''

'''    MsgBox "CSV file exported successfully!", vbInformation



'''On Error Resume Next

On Error GoTo Err:



    Dim ws As Worksheet

    Dim dataRange As Range

    Dim outputFilePath As String

    Dim cell As Range

    Dim value As Variant


    ' Set the worksheet

  '''  Set ws = ThisWorkbook.Sheets("Sheet3")

''' Set ws = ThisWorkbook.Sheet3

Set ws = Sheet3

    ' Set the range to A2:N30000

    Set dataRange = ws.Range("A2:N30000")


    ' Create a timestamp for the output file name

    Dim timeStamp As String

    timeStamp = Format(Now(), "yyyymmdd_hhmmss")


    ' Define the output file path with timestamp

 '''   outputFilePath = Application.GetSaveAsFilename(InitialFileName:="output_" & timeStamp & ".csv", FileFilter:="CSV (Comma delimited) (*.csv), *.csv")

 outputFilePath = ThisWorkbook.FullName & "_" & "output_" & timeStamp & ".SAANOWNCSVLINIERSCALEDDXFFORMIDI"

''' Application.GetSaveAsFilename(InitialFileName:="output_" & timeStamp & ".csv", FileFilter:="CSV (Comma delimited) (*.csv), *.csv")

 

    ' Check if the user canceled the file selection

    If outputFilePath = "False" Then

        Exit Sub

    End If


'''    ' Open the file for writing

'''    Open outputFilePath For Output As #1

'''

'''    ' Loop through each cell in the range

'''    For Each cell In dataRange

'''        ' Get the cell value

'''        value = cell.value

'''

'''        ' Check if the value is numeric and format accordingly

'''        If IsNumeric(value) Then

'''            Print #1, Format$(value, "0.##########") ' Adjust the number of decimals as needed

'''        Else

'''            Print #1, value

'''        End If

'''

'''

'''

'''    Next cell

'''

'''    ' Close the file

'''    Close #1





    ' Open the file for writing

    Open outputFilePath For Output As #1


    ' Loop through each row in the range

    For Each Row In dataRange.Rows

        ' Loop through each cell in the row

        For Each cell In Row

            ' Get the cell value

            value = cell.value



            ' Check if the value is numeric and format accordingly

            If IsNumeric(value) Then

                Print #1, Format$(value, "0.##########"); ' Adjust the number of decimals as needed

            Else

               ''' Print #1, value;

              ''' Print #1, value

             Print #1, CStr(value)

            End If


            ' Add a comma to separate values (except for the last cell in the row)

            If cell.Column < dataRange.Columns.Count Then

                Print #1, ",";

             Else

             Print #1, vbCrLf;

             

            End If

        Next cell

        

        ' Move to the next line for the next row

        Print #1, ""


    Next Row


    ' Close the file

    Close #1

    


    MsgBox "CSV file exported successfully!", vbInformation

    

Err:

       MsgBox (Err.Description & "   " & Err.number)

      If (Err.number = 52) Then

       Close #1

       Else

       Resume Next

      End If

      

      

      

     

    

End Sub '''Public Sub ExportToCSV()



Public Sub save_file_to_required_data___SAANOWNCSVLINIERSCALEDDXFFORMIDI()

'On Error Resume Next

    ' Create a timestamp for the output file name

    Dim timeStamp As String

    timeStamp = ""

    timeStamp = Format(Now(), "yyyymmdd_hhmmss")


    ' Define the output file path with timestamp

 '''   outputFilePath = Application.GetSaveAsFilename(InitialFileName:="output_" & timeStamp & ".csv", FileFilter:="CSV (Comma delimited) (*.csv), *.csv")

 '''outputFilePath = ThisWorkbook.FullName & "_" & "output_" & timeStamp & Range("FILENAME_FOR_MIDS").value & ".SAANOWNCSVLINIERSCALEDDXFFORMIDI"

 '''outputFilePath = ThisWorkbook.FullName & "_" & timeStamp & Range("FILENAME_FOR_MIDS").value & ".SAANOWNCSVLINIERSCALEDDXFFORMIDI"

 outputFilePath = ThisWorkbook.Path & "\\INSTS_" & timeStamp & Range("FILENAME_FOR_MIDS").value & ".SAANOWNCSVLINIERSCALEDDXFFORMIDI"

'''  SAANOWNCSVLINIERSCALEDDXFFORMIDIFileObject

''' SAANOWNCSVLINIERSCALEDDXFFORMIDI_FILE_LAYOUTING



'''Public SAANOWNCSVLINIERSCALEDDXFFORMIDIFileObject As Object

'''Public SAANOWNCSVLINIERSCALEDDXFFORMIDI_FILE As Object


 Set SAANOWNCSVLINIERSCALEDDXFFORMIDIFileObject = CreateObject("Scripting.FileSystemObject")

 Set SAANOWNCSVLINIERSCALEDDXFFORMIDI_FILE = SAANOWNCSVLINIERSCALEDDXFFORMIDIFileObject.CreateTextFile(outputFilePath, True)

 

'''                         f.Write (temp_text_string_data)

'''                        f.Close

'''DXF_FILENAME_FOR_GT = ThisWorkbook.Path & "\\SANJOY_NATH_GT_" & Sheet4.Cells(1, 7) & "(" & Sheet4.Cells(1, 6) & "," & Sheet4.Cells(1, 4) & ")_" & Sheet4.Cells(1, 9) & "_CUMULATES.DXF"

'''

'''ORA_IMPORT_FILENAME_FOR_GT = ThisWorkbook.Path & "\\SANJOY_NATH_GT_" & Sheet4.Cells(1, 7) & "(" & Sheet4.Cells(1, 6) & "," & Sheet4.Cells(1, 4) & ")_" & Sheet4.Cells(1, 9) & "_CUMULATES.ORACLES_IMPORT"

'''

'''

'''

''' Set dxfFileObject_FOR_NEW_LAYOUT_DRAWINGS = CreateObject("Scripting.FileSystemObject")

'''''' Set dxf_FILE_LAYOUTING = dxfFileObject.CreateTextFile(Trim(FILENAMEINPUT) + "_WITH_BLOCKS_AISC_LAYOUTS.DXF", True)

'''

'''

'''Set dxf_FILE_LAYOUTING = dxfFileObject_FOR_NEW_LAYOUT_DRAWINGS.CreateTextFile(DXF_FILENAME_FOR_GT, True)



Dim value As Variant

Dim line_string As String



'''

'''Set ORACLE_DATABASE_FileObject_FOR_NEW_LAYOUT_DRAWINGS = CreateObject("Scripting.FileSystemObject")

'''Set ORACLE_DATABASE_FILE_LAYOUTING = ORACLE_DATABASE_FileObject_FOR_NEW_LAYOUT_DRAWINGS.CreateTextFile(ORA_IMPORT_FILENAME_FOR_GT, True)


For rrr = 1 To 30000 Step 1

line_string = ""

For ccc = 1 To 14 Step 1



      '''     value = cell.value


  value = Sheet3.Cells(rrr, ccc).value

  

  

  

            ' Check if the value is numeric and format accordingly

            If IsNumeric(value) Then

                '''Print #1, Format$(value, "0.##########"); ' Adjust the number of decimals as needed

               ''' SAANOWNCSVLINIERSCALEDDXFFORMIDI_FILE.Write (Format$(value, "0.##########"))

                line_string = line_string & Format$(value, "0.##########")

            Else

               ''' Print #1, value;

              ''' Print #1, value

             '''Print #1, CStr(value)

              '''SAANOWNCSVLINIERSCALEDDXFFORMIDI_FILE.Write (CStr(value))

               line_string = line_string & CStr(value)

            End If

            

            

            '''SAANOWNCSVLINIERSCALEDDXFFORMIDI_FILE.Write (",")

             line_string = line_string & CStr(",")


Next ccc




If (line_string = ",,,,,,,,,,,,,,") Then

Else

line_string = Replace(line_string, ".,", ",", 1, -1, vbTextCompare)

SAANOWNCSVLINIERSCALEDDXFFORMIDI_FILE.Write (line_string & vbCrLf)

End If 'If (line_string = ",,,,,,,,,,,,,,") Then





Next rrr


SAANOWNCSVLINIERSCALEDDXFFORMIDI_FILE.Close


 MsgBox (" file saved at " & outputFilePath)


End Sub '''Public Sub save_file_to_required_data___SAANOWNCSVLINIERSCALEDDXFFORMIDI()



Public Sub READUTF8_FILES_AND_ConvertUnicodeToAscii_FILES()

    Dim fso As Object

    Dim tsIn As Object

    Dim tsOut As Object

    Dim sText As String

    Dim sFileName As String

    Dim i As Long

    

    'Specify the file name of the Bengali Unicode text file

    sFileName = "C:\Users\UserName\Documents\BengaliUnicode.txt"

    

    'Create a FileSystemObject

    Set fso = CreateObject("Scripting.FileSystemObject")

    

    'Open the input file

    Set tsIn = fso.OpenTextFile(sFileName, 1, False, -1)

    

    'Create the output file

    Set tsOut = fso.CreateTextFile("C:\Users\UserName\Documents\BengaliAscii.txt", True, False)

    

    'Read the input file line by line

    Do Until tsIn.AtEndOfStream

        sText = tsIn.ReadLine

        

        'Convert the Unicode literals to ASCII literals

        For i = 1 To Len(sText)

            If AscW(Mid(sText, i, 1)) < 128 Then

                tsOut.Write Mid(sText, i, 1)

            Else

                tsOut.Write "&#" & CStr(AscW(Mid(sText, i, 1))) & ";"

            End If

        Next i

        

        'Write the converted text to the output file

        tsOut.WriteLine

    Loop

    

    'Close the input and output files

    tsIn.Close

    tsOut.Close

    

    MsgBox "Conversion complete!"

End Sub '''Public Sub READUTF8_FILES_AND_ConvertUnicodeToAscii_FILES()



Public Sub ASKS_FOR_UNIFILESNAMES_AND_ConvertUnicodeToAscii_FILES()

    Dim fso As Object

    Dim tsIn As Object

    Dim tsOut As Object

    Dim sText_utf8 As String

    Dim sText_ascii As String

    Dim sFileName As String

    Dim i As Long

    

    'Create a FileSystemObject

    Set fso = CreateObject("Scripting.FileSystemObject")

    sFileName = "C:\Users\UserName\Documents\DEFAULT_BengaliAscii.txt"

    'Open the input file

    sFileName = Application.GetOpenFilename("UNICODE UTF8 Text Files (*.txt), *.txt")

'''    Set tsIn = fso.OpenTextFile(sFileName, 1, False, -1)

'''Set tsIn = fso.OpenTextFile(sFileName, 1, True, True)

'''Set tsIn = fso.OpenTextFile(sFileName, 1, False, -1, True)

 '''Set tsIn = fso.OpenTextFile(sFileName, 1, False, -1, 65001)

    Set tsIn = fso.OpenTextFile(sFileName, 1, False, -1)

    'Create the output file

   ''' Set tsOut = fso.CreateTextFile("C:\Users\UserName\Documents\BengaliAscii.txt", True, False)

   Set tsOut = fso.CreateTextFile(sFileName & "_ASCIIDONE.TXT", True, False)

    

    'Read the input file line by line

    Do Until tsIn.AtEndOfStream

        '''sText = Str(tsIn.ReadLine)

        sText_utf8 = (tsIn.ReadLine)

        'Convert the Unicode literals to ASCII literals

'''      sText_ascii = ConvertBengaliToEnglishASCII_NEW___SPECIAL(sText_utf8)

        

        

'''        For i = 1 To Len(sText_ascii)

'''            If AscW(Mid(sText_ascii, i, 1)) < 128 Then

'''                tsOut.Write Mid(sText_ascii, i, 1)

'''            Else

'''                tsOut.Write "&#" & CStr(AscW(Mid(sText_ascii, i, 1))) & ";"

'''            End If

'''        Next i


        For i = 1 To Len(sText_utf8)

            If AscW(Mid(sText_utf8, i, 1)) < 128 Then

                tsOut.Write Mid(sText_ascii, i, 1)

            Else

                tsOut.Write "&#" & CStr(AscW(Mid(sText_utf8, i, 1))) & ";"

            End If

        Next i

        

        

        'Write the converted text to the output file

        tsOut.WriteLine

    Loop

    

    'Close the input and output files

    tsIn.Close

    tsOut.Close

    

    MsgBox "Conversion complete!"

End Sub '''Public Sub ASKS_FOR_UNIFILESNAMES_AND_ConvertUnicodeToAscii_FILES()



Public Sub ConvertAsciiTEXT_FILES_ToUnicodeUTF8_FILES()

''' THIS FUNCTION READS THE FILE OF THIS STYLES

'''&#8236;&#3463;&#8368;&#8383;&#11565;&#3504;&#8352;&#3492;&#8368;&#8327;&#3463;&#8383;&#8383;&#11565;&#3504;&#8352;&#3492;&#3338;&#8331;&#3463;&#8368;&#11711;&#2573;&#2573;&#8327;&#10133;&#8236;&#8382;&#2573;&#11711;&#2573;&#3492;&#3338;&#8368;&#8383;&#3506;&#8382;&#11659;&#2573;&#3492;&#8368;&#11683;&#11693;&#2573;&#8321;&#11565;&#3504;&#8352;&#3492;


    Dim fso As Object

    Dim tsIn As Object

    Dim tsOut As Object

   ''' Dim sText As String

   Dim sText As Variant

    Dim sFileName As String

    Dim i As Long

    

    'Create a FileSystemObject

    Set fso = CreateObject("Scripting.FileSystemObject")

    

    

    sFileName = "C:\Users\UserName\Documents\DEFAULT_AMPERSANDDOLLAR_Ascii.txt"

    'Open the input file

    sFileName = Application.GetOpenFilename("NORMAL AMPERSAND DOLLAR ASCII Text Files (*.txt), *.txt")

    

    'Open the input file

    '''sFileName = Application.GetOpenFilename("Text Files (*.txt), *.txt")

    '''Set tsIn = fso.OpenTextFile(sFileName, 1, False, -1)

  '''   Set tsIn = fso.OpenTextFile(sFileName, 1, False, -1, 65001)

    Set tsIn = fso.OpenTextFile(sFileName, 1, False, -1)

    'Create the output file

  '''  Set tsOut = fso.CreateTextFile(fso.GetParentFolderName(sFileName) & "\CONVERTSTO_BengaliUnicode.txt", True, False)

 '''    Set tsOut = fso.CreateTextFile(sFileName & "_CONVERTSTO_BengaliUnicode.txt", True, False)

 Set tsOut = fso.CreateTextFile(sFileName & "_CONVERTSTO_BengaliUnicode.txt", True, True)

    'Read the input file line by line

    Do Until tsIn.AtEndOfStream

        sText = tsIn.ReadLine

        

        

        sText = Replace(sText, "&#", "&#x")

        sText = Replace(sText, ";", "; ")

        sText = Replace(sText, "&#x", "&H")

        sText = Replace(sText, " ", "")

        sText = Replace(sText, "&H", "&H00")

        sText = Replace(sText, "&H00;", "")

        sText = Replace(sText, "&H", "&#")



'''Function ChrW$(CharCode As Long) As String

       'Convert the ASCII literals to Bengali Unicode literals

       

       

      For i = 1 To Len(sText)

      

      sText = sText & CStr(ChrW$(Mid(sText, i, 1)))

'''            If AscW(Mid(sText, i, 1)) < 128 Then

'''                tsOut.Write Mid(sText_ascii, i, 1)

'''            Else

'''               ''' tsOut.Write "&#" & CStr(AscW(Mid(sText, i, 1))) & ";"

'''

'''

'''

'''                tsOut.Write CStr(ChrW$(Mid(sText, i, 1))) & ";"

'''            End If

      Next i

        

     

        

        sText = StrConv(sText, vbUnicode)

        

        'Convert the ASCII literals to Unicode literals

'''        sText = Replace(sText, "&#", "&#x")

'''        sText = Replace(sText, ";", "; ")

'''        sText = Replace(sText, "&#x", "&H")

'''        sText = Replace(sText, " ", "")

'''        sText = Replace(sText, "&H", "&H00")

'''        sText = Replace(sText, "&H00;", "")

'''        sText = Replace(sText, "&H", "&#")



'''        sText = Replace(sText, "&#", "&#x")

'''        sText = Replace(sText, ";", "; ")

'''        sText = Replace(sText, "&#x", "&H")

'''        sText = Replace(sText, " ", "")

'''        sText = Replace(sText, "&H", "&H00")

'''        sText = Replace(sText, "&H00;", "")

'''        sText = Replace(sText, "&H", "&#")

        

        

        

        

        'Write the converted text to the output file

        tsOut.WriteLine sText

    Loop

    

    'Close the input and output files

    tsIn.Close

    tsOut.Close

    

    MsgBox "Conversion complete!"

End Sub  '''Public Sub ConvertAsciiTEXT_FILES_ToUnicodeUTF8_FILES()







Function SAAN_TO_CHECK___IsBengaliUnicode(inputString As String) As Boolean

    Dim charCode As Long

    Dim i As Integer

    

    ' Loop through each character in the string

    For i = 1 To Len(inputString)

        ' Get the Unicode code point of the current character

        charCode = AscW(Mid(inputString, i, 1))

        

        ' Check if the code point is within the Bengali Unicode range

        If charCode >= &H980 And charCode <= &H9FF Then

            ' Found a Bengali character

            SAAN_TO_CHECK___IsBengaliUnicode = True

            Exit Function

        End If

    Next i

    

    ' No Bengali character found in the string

    SAAN_TO_CHECK___IsBengaliUnicode = False

End Function '''Function SAAN_TO_CHECK___IsBengaliUnicode(inputString As String) As Boolean






Public Sub SAAN_ASCII_FILES_AMPERSAND_HASH_ConvertAsciiToUnicode_UTF8()

'''On Error Resume Next


    Dim inputFilePath As String

    Dim outputFilePath As String

    Dim inputData As String

    Dim outputData As String

    

     Dim RawoutputData As String

     

     

    Dim asciiEntries() As String

   ''' Dim i As Integer

   Dim i As Double

    Dim fso As Object

    Dim inputFile As Object

    Dim outputFile As Object

    

    ' Prompt user to select the input file

    inputFilePath = Application.GetOpenFilename("NORMAL AMPERSAND DOLLAR ASCII Text Files (*.txt), *.txt")

    

    ' Check if the user selected a file

    If inputFilePath = "False" Then

        MsgBox "No file selected. Exiting."

        Exit Sub

    End If

    

    ' Create a Scripting.FileSystemObject

    Set fso = CreateObject("Scripting.FileSystemObject")

    

    ' Read the content of the input file

    Set inputFile = fso.OpenTextFile(inputFilePath, 1) ' 1: ForReading

    inputData = inputFile.ReadAll

    inputFile.Close

    

    RawoutputData = inputData

    

    

    '''saan doing this

     '''inputData = Replace(inputData, vbCrLf & vbCrLf, vbCrLf & "&#", 1, -1, vbTextCompare)

'''      inputData = Replace(inputData, vbCrLf & vbCrLf, vbCrLf, 1, -1, vbTextCompare)

'''    inputData = Replace(inputData, "<p>", "", 1, -1, vbTextCompare)

'''     inputData = Replace(inputData, "</p>", "", 1, -1, vbTextCompare)

'''     inputData = Replace(inputData, vbCrLf & "_", vbCrLf & "&#", 1, -1, vbTextCompare)

'''

'''

'''     inputData = Replace(inputData, ";" & vbCrLf, vbCrLf & "&#", 1, -1, vbTextCompare)

'''

'''     inputData = Replace(inputData, " _", "_", 1, -1, vbTextCompare)

'''     inputData = Replace(inputData, "_ ", "_", 1, -1, vbTextCompare)

'''

'''

'''      inputData = Replace(inputData, "__", "_", 1, -1, vbTextCompare)

'''

'''

'''      inputData = Replace(inputData, "_", "&#", 1, -1, vbTextCompare)

'''

      

      

      ''' i have seen this is present in the uni data

     '''  inputData = Replace(inputData, "¦", ";", 1, -1, vbTextCompare)

       

       

 ''' inputData = Replace(inputData, vbCrLf, ";", 1, -1, vbTextCompare)

 

 inputData = Replace(inputData, vbCrLf, vbCrLf & ";", 1, -1, vbTextCompare)

 

 

      

  inputData = Replace(inputData, "_", "&#", 1, -1, vbTextCompare)

  

  inputData = Replace(inputData, "&#", "", 1, -1, vbTextCompare)

    

    

    

    ' Split the input data into an array based on semicolon

    asciiEntries = Split(inputData, ";", -1, vbTextCompare)

    

    ' Convert ASCII entries to Unicode and concatenate them

'''    For i = LBound(asciiEntries) To UBound(asciiEntries)

'''        If IsNumeric(asciiEntries(i)) Then

'''            outputData = outputData & ChrW(CInt(asciiEntries(i)))

'''        Else

'''            ' If the entry is not numeric, keep it as is

'''            outputData = outputData & asciiEntries(i)

'''        End If

'''    Next i


'''For i = LBound(asciiEntries) To UBound(asciiEntries)

'''    If IsNumeric(asciiEntries(i)) Then

'''        ' Use CLng instead of CInt

'''        outputData = outputData & ChrW(CLng(asciiEntries(i)))

'''    Else

'''        ' If the entry is not numeric, keep it as is

'''        outputData = outputData & asciiEntries(i)

'''    End If

'''Next i


'''For i = LBound(asciiEntries) To UBound(asciiEntries)

'''    If IsNumeric(asciiEntries(i)) Then

'''        ' Use CDbl instead of CLng

'''      '''  outputData = outputData & ChrW(CLng(CDbl(asciiEntries(i))))not necessary

'''       outputData = outputData & ChrW(((asciiEntries(i))))

'''    Else

'''        ' If the entry is not numeric, keep it as is

'''        '''outputData = outputData & asciiEntries(i)

'''       ''' outputData = outputData & ChrW(((asciiEntries(i)))) ''' this has errors

'''       '''outputData = outputData & asciiEntries(i) '''ChrW(((asciiEntries(i))))

'''      ''' outputData = outputData & ChrW(((asciiEntries(i))))

'''      outputData = outputData & vbCrLf

'''    End If

'''Next i '''For i = LBound(asciiEntries) To UBound(asciiEntries)

    

    

    

'''' Convert ASCII entries to Unicode and concatenate them

'''For i = LBound(asciiEntries) To UBound(asciiEntries)

'''    ' Check if the entry starts with an underscore

'''    If Left(asciiEntries(i), 1) = "_" Then

'''        ' Remove the underscore and convert the numeric part to Unicode code point

'''        outputData = outputData & ChrW(CInt(Mid(asciiEntries(i), 2)))

'''    Else

'''        ' If the entry doesn't start with an underscore, keep it as is

'''        outputData = outputData & asciiEntries(i)

'''    End If

'''Next i



'''For i = LBound(asciiEntries) To UBound(asciiEntries)

'''    If IsNumeric(asciiEntries(i)) Then

'''        ' Use CDbl instead of CLng

'''      '''  outputData = outputData & ChrW(CLng(CDbl(asciiEntries(i))))not necessary

'''       outputData = outputData & ChrW(((asciiEntries(i))))

'''    Else

'''        ' If the entry is not numeric, keep it as is

'''        '''outputData = outputData & asciiEntries(i)

'''       ''' outputData = outputData & ChrW(((asciiEntries(i)))) ''' this has errors

'''       '''outputData = outputData & asciiEntries(i) '''ChrW(((asciiEntries(i))))

'''      ''' outputData = outputData & ChrW(((asciiEntries(i))))

'''      outputData = outputData & vbCrLf

'''    End If


'''Next i '''For i = LBound(asciiEntries) To UBound(asciiEntries)



 ' Convert ASCII entries to Unicode and concatenate them

'''For i = LBound(asciiEntries) To UBound(asciiEntries)

'''    ' Check if the entry starts with an underscore and ends with a semicolon

'''    If Left(asciiEntries(i), 1) = "_" And Right(asciiEntries(i), 1) = ";" Then

'''        ' Remove the underscore and semicolon, then convert the numeric part to Unicode code point

'''        outputData = outputData & ChrW(CInt(Mid(asciiEntries(i), 2, Len(asciiEntries(i)) - 2)))

'''    Else

'''        ' If the entry doesn't follow the expected format, keep it as is

'''       outputData = outputData & asciiEntries(i)

'''    '''   outputData = outputData & ChrW(CLng(CDbl(asciiEntries(i))))

'''

'''

'''    End If

'''Next i


For i = LBound(asciiEntries) To UBound(asciiEntries)

''' outputData = outputData & Str(i) & "           "




    If IsNumeric(asciiEntries(i)) Then

    

   

        ' Use CDbl instead of CLng

      '''  outputData = outputData & ChrW(CLng(CDbl(asciiEntries(i))))not necessary

       outputData = outputData & ChrW(((asciiEntries(i))))

    Else

    

'''If (SAAN_TO_CHECK___IsBengaliUnicode(asciiEntries(i))) Then

'''     outputData = outputData & "      it is bengali utf8  "

'''Else

''''''else   If (SAAN_TO_CHECK___IsBengaliUnicode(asciiEntries(i))) Then

'''

'''End If ''If (SAAN_TO_CHECK___IsBengaliUnicode(asciiEntries(i))) Then



'''If (SAAN_TO_CHECK___IsBengaliUnicode(ChrW(asciiEntries(i)))) Then

If (SAAN_TO_CHECK___IsBengaliUnicode((asciiEntries(i)))) Then

     outputData = outputData & "      it is bengali utf8  "

Else

'''else   If (SAAN_TO_CHECK___IsBengaliUnicode(asciiEntries(i))) Then

   

End If ''If (SAAN_TO_CHECK___IsBengaliUnicode(asciiEntries(i))) Then




        ' If the entry is not numeric, keep it as is

        outputData = outputData & asciiEntries(i)  '''& vbCrLf

       ''' outputData = outputData & ChrW(((asciiEntries(i)))) ''' this has errors

       '''outputData = outputData & asciiEntries(i) '''ChrW(((asciiEntries(i))))

      ''' outputData = outputData & ChrW(((asciiEntries(i))))

     ''' outputData = outputData & vbCrLf

    End If


Next i '''For i = LBound(asciiEntries) To UBound(asciiEntries)



    ' Prompt user to select the output file

   ''' outputFilePath = Application.GetSaveAsFilename("Unicode Output File (*.txt), *.txt")

    outputFilePath = inputFilePath & "_SAAN_CONVERTED_UTF8_FILES.TXT"             '''Application.GetSaveAsFilename("Unicode Output File (*.txt), *.txt")

    

    ' Check if the user selected a file

    If outputFilePath = "False" Then

        MsgBox "No output file selected. Exiting."

        Exit Sub

    End If

    

    ' Write the Unicode data to the output file

   ''' Set outputFile = fso.CreateTextFile(outputFilePath, True, False) ' True: Overwrite, False: Don't create Unicode file

   Set outputFile = fso.CreateTextFile(outputFilePath, True, True) ' True: Overwrite, True: create Unicode file

   

   

   

   

   Set rawoutputFile = fso.CreateTextFile(outputFilePath & "_raw.txt", True, True) ' True: Overwrite, True: create Unicode file

   rawoutputFile.Write RawoutputData

   rawoutputFile.Close

   

   

   

   

    outputFile.Write outputData

    outputFile.Close

    

    MsgBox "Conversion complete. Output file saved at: " & outputFilePath

End Sub '''public Sub SAAN_ASCII_FILES_AMPERSAND_HASH_ConvertAsciiToUnicode_UTF8()

'''It seems there might be a misunderstanding in the conversion process. The use of CDbl and CLng may not be necessary for converting the ASCII entries to Unicode. In fact, using CDbl and CLng on Unicode code points might cause unexpected behavior.

'''

'''If your ASCII entries are in the format &#xxxx; where xxxx is the Unicode code point, you can directly convert them to Unicode without the need for CDbl or CLng. Here's the corrected code:

'''

'''VBA

'''Copy code

'''' Convert ASCII entries to Unicode and concatenate them

'''For i = LBound(asciiEntries) To UBound(asciiEntries)

'''    If IsNumeric(asciiEntries(i)) Then

'''        ' Convert the numeric part to Unicode code point

'''        outputData = outputData & ChrW(CInt(asciiEntries(i)))

'''    Else

'''        ' If the entry is not numeric, keep it as is

'''        outputData = outputData & asciiEntries(i)

'''    End If

'''Next i

'''This code assumes that your ASCII entries are formatted as &#xxxx; where xxxx is a decimal Unicode code point. The CInt function is used to convert the numeric part directly to an integer without the need for CDbl or CLng. This should prevent the unintended changes to original Unicode characters.

'''

'''






Public Sub SAAN_ASCII_FILES_AMPERSAND_HASH_ConvertAsciiToUnicode_UTF8___CLEANED()


    Dim inputFilePath As String

    Dim outputFilePath As String

    Dim inputData As String

    Dim outputData As String

    

     Dim RawoutputData As String

     

     

    Dim asciiEntries() As String

   ''' Dim i As Integer

   Dim i As Double

    Dim fso As Object

    Dim inputFile As Object

    Dim outputFile As Object

    

    ' Prompt user to select the input file

    inputFilePath = Application.GetOpenFilename("NORMAL AMPERSAND DOLLAR ASCII Text Files (*.txt), *.txt")

    

    ' Check if the user selected a file

    If inputFilePath = "False" Then

        MsgBox "No file selected. Exiting."

        Exit Sub

    End If

    

    ' Create a Scripting.FileSystemObject

    Set fso = CreateObject("Scripting.FileSystemObject")

    

    ' Read the content of the input file

    Set inputFile = fso.OpenTextFile(inputFilePath, 1) ' 1: ForReading

    inputData = inputFile.ReadAll

    inputFile.Close

    

    RawoutputData = inputData

    


 

 inputData = Replace(inputData, vbCrLf, vbCrLf & ";", 1, -1, vbTextCompare)

 

 

      

  inputData = Replace(inputData, "_", "&#", 1, -1, vbTextCompare)

  

  inputData = Replace(inputData, "&#", "", 1, -1, vbTextCompare)

    

    

    

    ' Split the input data into an array based on semicolon

    asciiEntries = Split(inputData, ";", -1, vbTextCompare)

    

    

    



For i = LBound(asciiEntries) To UBound(asciiEntries)

''' outputData = outputData & Str(i) & "           "




    If IsNumeric(asciiEntries(i)) Then

    

   

        ' Use CDbl instead of CLng

      '''  outputData = outputData & ChrW(CLng(CDbl(asciiEntries(i))))not necessary

       outputData = outputData & ChrW(((asciiEntries(i))))

    Else

    




'''If (SAAN_TO_CHECK___IsBengaliUnicode(ChrW(asciiEntries(i)))) Then

If (SAAN_TO_CHECK___IsBengaliUnicode((asciiEntries(i)))) Then

     outputData = outputData & "      it is bengali utf8  "

Else

'''else   If (SAAN_TO_CHECK___IsBengaliUnicode(asciiEntries(i))) Then

   

End If ''If (SAAN_TO_CHECK___IsBengaliUnicode(asciiEntries(i))) Then




        ' If the entry is not numeric, keep it as is

        outputData = outputData & asciiEntries(i)  '''& vbCrLf


    End If


Next i '''For i = LBound(asciiEntries) To UBound(asciiEntries)



    ' Prompt user to select the output file

   ''' outputFilePath = Application.GetSaveAsFilename("Unicode Output File (*.txt), *.txt")

    outputFilePath = inputFilePath & "_SAAN_CONVERTED_UTF8_FILES.TXT"             '''Application.GetSaveAsFilename("Unicode Output File (*.txt), *.txt")

    

    ' Check if the user selected a file

    If outputFilePath = "False" Then

        MsgBox "No output file selected. Exiting."

        Exit Sub

    End If

    

    ' Write the Unicode data to the output file

   ''' Set outputFile = fso.CreateTextFile(outputFilePath, True, False) ' True: Overwrite, False: Don't create Unicode file

   Set outputFile = fso.CreateTextFile(outputFilePath, True, True) ' True: Overwrite, True: create Unicode file

   

   

   

   

   Set rawoutputFile = fso.CreateTextFile(outputFilePath & "_raw.txt", True, True) ' True: Overwrite, True: create Unicode file

   rawoutputFile.Write RawoutputData

   rawoutputFile.Close

   

   

   

   

    outputFile.Write outputData

    outputFile.Close

    

    MsgBox "Conversion complete. Output file saved at: " & outputFilePath

End Sub '''Public Sub SAAN_ASCII_FILES_AMPERSAND_HASH_ConvertAsciiToUnicode_UTF8___CLEANED()

'''It seems there might be a misunderstanding in the conversion process. The use of CDbl and CLng may not be necessary for converting the ASCII entries to Unicode. In fact, using CDbl and CLng on Unicode code points might cause unexpected behavior.

'''

'''If your ASCII entries are in the format &#xxxx; where xxxx is the Unicode code point, you can directly convert them to Unicode without the need for CDbl or CLng. Here's the corrected code:

'''

'''VBA

'''Copy code

'''' Convert ASCII entries to Unicode and concatenate them

'''For i = LBound(asciiEntries) To UBound(asciiEntries)

'''    If IsNumeric(asciiEntries(i)) Then

'''        ' Convert the numeric part to Unicode code point

'''        outputData = outputData & ChrW(CInt(asciiEntries(i)))

'''    Else

'''        ' If the entry is not numeric, keep it as is

'''        outputData = outputData & asciiEntries(i)

'''    End If

'''Next i

'''This code assumes that your ASCII entries are formatted as &#xxxx; where xxxx is a decimal Unicode code point. The CInt function is used to convert the numeric part directly to an integer without the need for CDbl or CLng. This should prevent the unintended changes to original Unicode characters.

'''

'''


'''

'''Function SAAN_TO_CHECK___IsBengaliUnicode(inputString As String) As Boolean

'''    Dim charCode As Long

'''    Dim i As Integer

'''

'''    ' Loop through each character in the string

'''    For i = 1 To Len(inputString)

'''        ' Get the Unicode code point of the current character

'''        charCode = AscW(Mid(inputString, i, 1))

'''

'''        ' Check if the code point is within the Bengali Unicode range

'''        If charCode >= &H980 And charCode <= &H9FF Then

'''            ' Found a Bengali character

'''            SAAN_TO_CHECK___IsBengaliUnicode = True

'''            Exit Function

'''        End If

'''    Next i

'''

'''    ' No Bengali character found in the string

'''    SAAN_TO_CHECK___IsBengaliUnicode = False

'''End Function '''Function SAAN_TO_CHECK___IsBengaliUnicode(inputString As String) As Boolean


Public Sub GenerateUnicodeFileWithPairs()

    Dim outputFilePath As String

    Dim outputFile As Object

    Dim charCode As Long

    Dim i As Integer

    

    Dim the_counter As Double

    

    the_counter = 0

    

    

    ' Prompt user to select the output file

    outputFilePath = Application.GetSaveAsFilename("GENERATING Bengali Unicode Output File (*.txt), *.txt")

    

    ' Check if the user selected a file

    If outputFilePath = "False" Then

        MsgBox "No output file selected. Exiting."

        Exit Sub

    End If

    

    ' Write the pairs of Bengali characters and 2468 to the output file

    Set outputFile = CreateObject("Scripting.FileSystemObject").CreateTextFile(outputFilePath + "_saan_s_utf8_bengals.txt", True, True) ' True: Overwrite, True: create Unicode file

    

'''    For i = &H980 To &H9FF - 1 Step 2

'''        ' Generate triads with Bengali characters and 2468

'''        outputFile.WriteLine (ChrW(i) & ChrW(2468) & ChrW(i + 1))

'''    Next i

'''

'''

'''    For i = &H980 To &H9FF - 1 Step 2

'''        ' Generate triads with Bengali characters and 2468

'''        outputFile.WriteLine (ChrW(i) & ChrW(2468) & ChrW(i + 1))

'''    Next i

'''

    

    

    

    

    

    

    For i = &H980 To (&H9FF - 1) Step 1

     For k = &H980 To (&H9FF - 1) Step 1

     the_counter = the_counter + 1

        ' Generate triads with Bengali characters and 2468

        outputFile.WriteLine Str(the_counter) & "   " & Str(i) & "_2468_" & Str(k) & "   " & (ChrW(i) & ChrW(2468) & ChrW(k))

         the_counter = the_counter + 1

        outputFile.WriteLine Str(the_counter) & "   " & Str(k) & "_2468_" & Str(i) & "   " & (ChrW(k) & ChrW(2468) & ChrW(i))

        Next k

    Next i '''For i = &H980 To (&H9FF - 1) Step 1

    

    


        

    For i = (&H9FF - 1) To &H980 Step -1

     For k = (&H9FF - 1) To &H980 Step -1

        ' Generate triads with Bengali characters and 2468

         the_counter = the_counter + 1

         

        outputFile.WriteLine Str(the_counter) & "   " & Str(i) & "_2468_" & Str(k) & "   " & (ChrW(i) & ChrW(2468) & ChrW(k))

        

         the_counter = the_counter + 1

         outputFile.WriteLine Str(the_counter) & "   " & Str(k) & "_2468_" & Str(i) & "   " & (ChrW(k) & ChrW(2468) & ChrW(i))

        

        Next k

    Next i '''For i = &H980 To (&H9FF - 1) Step 1

        

        

    ' Close the output file

    outputFile.Close

    

    MsgBox "Unicode file with pairs generated. Output file saved at: " & outputFilePath

End Sub '''public Sub GenerateUnicodeFileWithPairs()





Public Sub GenerateUnicodeFileWith_3_PLUS_CODES()

    Dim outputFilePath As String

    Dim outputFile As Object

    Dim charCode As Long

    Dim i As Integer

    

    Dim the_counter As Double

    

    the_counter = 0

    

    

    ' Prompt user to select the output file

    outputFilePath = Application.GetSaveAsFilename("GENERATING Bengali Unicode Output File (*.txt), *.txt")

    

    ' Check if the user selected a file

    If outputFilePath = "False" Then

        MsgBox "No output file selected. Exiting."

        Exit Sub

    End If

    

    ' Write the pairs of Bengali characters and 2468 to the output file

    Set outputFile = CreateObject("Scripting.FileSystemObject").CreateTextFile(outputFilePath + "_saan_s_3_plus_utf8_bengals.txt", True, True) ' True: Overwrite, True: create Unicode file

    

'''    For i = &H980 To &H9FF - 1 Step 2

'''        ' Generate triads with Bengali characters and 2468

'''        outputFile.WriteLine (ChrW(i) & ChrW(2468) & ChrW(i + 1))

'''    Next i

'''

'''

'''    For i = &H980 To &H9FF - 1 Step 2

'''        ' Generate triads with Bengali characters and 2468

'''        outputFile.WriteLine (ChrW(i) & ChrW(2468) & ChrW(i + 1))

'''    Next i

'''

    

    

    

    

    

    

    For i = &H980 To (&H9FF - 1) Step 1

     For k = &H980 To (&H9FF - 1) Step 1

     For r = &H980 To (&H9FF - 1) Step 1

     

      the_counter = the_counter + 1

        

       outputFile.WriteLine Str(the_counter) & "   " & Str(k) & "_2468_" & Str(i) & "_2468_" & Str(r) & "   " & (ChrW(k) & ChrW(2468) & ChrW(i) & ChrW(2468) & ChrW(r))

       

       

       the_counter = the_counter + 1

        

       outputFile.WriteLine Str(the_counter) & "   " & Str(k) & "_2468_" & Str(r) & "_2468_" & Str(i) & "   " & (ChrW(k) & ChrW(2468) & ChrW(r) & ChrW(2468) & ChrW(i))

 

 

 

 

 

 

 

     the_counter = the_counter + 1

        ' Generate triads with Bengali characters and 2468

        outputFile.WriteLine Str(the_counter) & "   " & Str(i) & "_2468_" & Str(k) & "_2468_" & Str(r) & "   " & (ChrW(i) & ChrW(2468) & ChrW(k) & ChrW(2468) & ChrW(r))

        

        

        the_counter = the_counter + 1

        

       outputFile.WriteLine Str(the_counter) & "   " & Str(i) & "_2468_" & Str(r) & "_2468_" & Str(k) & "   " & (ChrW(i) & ChrW(2468) & ChrW(r) & ChrW(2468) & ChrW(k))

        

        

        

       the_counter = the_counter + 1

        

       outputFile.WriteLine Str(the_counter) & "   " & Str(r) & "_2468_" & Str(i) & "_2468_" & Str(k) & "   " & (ChrW(r) & ChrW(2468) & ChrW(i) & ChrW(2468) & ChrW(k))

       

       

       the_counter = the_counter + 1

        

       outputFile.WriteLine Str(the_counter) & "   " & Str(r) & "_2468_" & Str(k) & "_2468_" & Str(i) & "   " & (ChrW(r) & ChrW(2468) & ChrW(k) & ChrW(2468) & ChrW(i))

       

       

        

        Next r

        Next k

    Next i '''For i = &H980 To (&H9FF - 1) Step 1

    

    


        

    For i = (&H9FF - 1) To &H980 Step -1

     For k = (&H9FF - 1) To &H980 Step -1

     For r = (&H9FF - 1) To &H980 Step -1

        ' Generate triads with Bengali characters and 2468

    '''     the_counter = the_counter + 1

         

        '''outputFile.WriteLine Str(the_counter) & "   " & (ChrW(i) & ChrW(2468) & ChrW(k))

    '''    outputFile.WriteLine Str(the_counter) & "   " & (ChrW(r) & ChrW(2468) & ChrW(k) & ChrW(2468) & ChrW(i))

    

    

      the_counter = the_counter + 1

        

       outputFile.WriteLine Str(the_counter) & "   " & Str(k) & "_2468_" & Str(i) & "_2468_" & Str(r) & "   " & (ChrW(k) & ChrW(2468) & ChrW(i) & ChrW(2468) & ChrW(r))

       

       

       the_counter = the_counter + 1

        

       outputFile.WriteLine Str(the_counter) & "   " & Str(k) & "_2468_" & Str(r) & "_2468_" & Str(i) & "   " & (ChrW(k) & ChrW(2468) & ChrW(r) & ChrW(2468) & ChrW(i))

 

 

 

 

 

 

 

     the_counter = the_counter + 1

        ' Generate triads with Bengali characters and 2468

        outputFile.WriteLine Str(the_counter) & "   " & Str(i) & "_2468_" & Str(k) & "_2468_" & Str(r) & "   " & (ChrW(i) & ChrW(2468) & ChrW(k) & ChrW(2468) & ChrW(r))

        

        

        the_counter = the_counter + 1

        

       outputFile.WriteLine Str(the_counter) & "   " & Str(i) & "_2468_" & Str(r) & "_2468_" & Str(k) & "   " & (ChrW(i) & ChrW(2468) & ChrW(r) & ChrW(2468) & ChrW(k))

        

        

        

       the_counter = the_counter + 1

        

       outputFile.WriteLine Str(the_counter) & "   " & Str(r) & "_2468_" & Str(i) & "_2468_" & Str(k) & "   " & (ChrW(r) & ChrW(2468) & ChrW(i) & ChrW(2468) & ChrW(k))

       

       

       the_counter = the_counter + 1

        

       outputFile.WriteLine Str(the_counter) & "   " & Str(r) & "_2468_" & Str(k) & "_2468_" & Str(i) & "   " & (ChrW(r) & ChrW(2468) & ChrW(k) & ChrW(2468) & ChrW(i))

       

    

    

    

    

        

        Next r

        Next k

    Next i '''For i = &H980 To (&H9FF - 1) Step 1

        

        

    ' Close the output file

    outputFile.Close

    

    MsgBox "Unicode file with pairs generated. Output file saved at: " & outputFilePath

End Sub '''Public Sub GenerateUnicodeFileWith_3_PLUS_CODES()







Public Sub ProcessLargeTextFile()

    Dim inputFilePath As String

    Dim outputFilePath As String

    Dim inputData As String

    Dim outputData As String

    Dim lines() As String

  '''  Dim i As Integer

  Dim i As Double


    ' Prompt user to select the input file

    inputFilePath = Application.GetOpenFilename("Text Files (*.txt), *.txt")

    

    ' Check if the user selected a file

    If inputFilePath = "False" Then

        MsgBox "No file selected. Exiting."

        Exit Sub

    End If

    

    ' Read the content of the input file

    Open inputFilePath For Input As #1

    inputData = Input$(LOF(1), #1)

    Close #1


    ' Split the input data into lines

    lines = Split(inputData, vbCrLf)


    ' Process each line

    For i = LBound(lines) To UBound(lines)

        ' Check if the line starts with "_"

        If Left(lines(i), 1) = "_" Then

            ' Split the line using ":"

            Dim parts() As String

            parts = Split(Mid(lines(i), 2), ":")


            ' Process each part and convert numbers to Bengali Unicode

            Dim j As Integer

            For j = LBound(parts) To UBound(parts)

                If IsNumeric(parts(j)) Then

                    ' Convert the number to Bengali Unicode

                    parts(j) = ConvertToBengaliUnicode(CLng(parts(j)))

                End If

            Next j


            ' Join the parts and add to the output data

            outputData = outputData & Join(parts, ":") & vbCrLf

        End If

    Next i


    ' Prompt user to select the output file

   ''' outputFilePath = Application.GetSaveAsFilename("Unicode Output File (*.txt), *.txt")

   outputFilePath = inputFilePath & "_saan_converts_to_bengaliutf8.txt"

   

    ' Check if the user selected a file

    If outputFilePath = "False" Then

        MsgBox "No output file selected. Exiting."

        Exit Sub

    End If

    

    ' Write the Unicode data to the output file

    Open outputFilePath For Output As #2

    Print #2, outputData

    Close #2

    

    MsgBox "Conversion complete. Output file saved at: " & outputFilePath

End Sub ''Public Sub ProcessLargeTextFile()


Public Function ConvertToBengaliUnicode(number As Long) As String

    ' Implement your logic to convert a number to Bengali Unicode

    ' This is just a placeholder, you need to replace it with your actual conversion logic

    ConvertToBengaliUnicode = ChrW(&H980 + number)

End Function    '''Public Function ConvertToBengaliUnicode(number As Long) As String



Public Function FFT(dataArray() As Double) As Double()

    Dim n As Long

    Dim halfN As Long

    Dim even() As Double, odd() As Double

    Dim complexRoots() As Double

    Dim k As Long, j As Long

    Dim twiddleFactorReal As Double, twiddleFactorImag As Double

    Dim theta As Double

    Dim result() As Double


    n = UBound(dataArray) + 1


    ' Base case: if the length is 1, return the input array as is

    If n = 1 Then

        ReDim result(1 To 2)

        result(1) = dataArray(1)

        result(2) = dataArray(2)

        FFT = result

        Exit Function

    End If


    ' Split the input array into even and odd parts

    halfN = n / 2

    ReDim even(1 To halfN * 2), odd(1 To halfN * 2)

    For j = 1 To halfN

        even(j * 2 - 1) = dataArray(j * 4 - 1)

        even(j * 2) = dataArray(j * 4)

        odd(j * 2 - 1) = dataArray(j * 4 - 2)

        odd(j * 2) = dataArray(j * 4 + 1)

    Next j


    ' Recursive FFT on even and odd parts

    even = FFT(even)

    odd = FFT(odd)


    ' Combine results

    ReDim result(1 To n * 2)

    For j = 1 To halfN

        ' Calculate twiddle factors

        theta = -2 * Application.Pi * (j - 1) / n

        twiddleFactorReal = Cos(theta)

        twiddleFactorImag = Sin(theta)


        ' Butterfly operation

        result(j * 2 - 1) = even(j * 2 - 1) + twiddleFactorReal * odd(j * 2 - 1) - twiddleFactorImag * odd(j * 2)

        result(j * 2) = even(j * 2) + twiddleFactorReal * odd(j * 2) + twiddleFactorImag * odd(j * 2 - 1)

        result((j + halfN) * 2 - 1) = even(j * 2 - 1) - twiddleFactorReal * odd(j * 2 - 1) + twiddleFactorImag * odd(j * 2)

        result((j + halfN) * 2) = even(j * 2) - twiddleFactorReal * odd(j * 2) - twiddleFactorImag * odd(j * 2 - 1)

    Next j


    FFT = result

End Function ''Public Function FFT(dataArray() As Double) As Double()


'''Option Explicit


Public Sub FFTToDo()

    Dim inputFilePath As String

    Dim outputFilePath As String

    Dim inputData As String

    Dim dataArray() As Double

    Dim fftResult() As Double

    Dim i As Long

    

    ' Prompt user to select the input file

    inputFilePath = Application.GetOpenFilename("Text Files with numbers newlines to do FFT(*.txt), *.txt")

    

    ' Check if the user selected a file

    If inputFilePath = "False" Then

        MsgBox "No file selected. Exiting."

        Exit Sub

    End If

    

    ' Read the content of the input file

    Open inputFilePath For Input As #1

    inputData = Input$(LOF(1), #1)

    Close #1


    ' Split the input data into an array of doubles

    dataArray = Split(inputData, vbCrLf)

    ReDim fftResult(1 To UBound(dataArray) + 1)


    ' Convert the string values to doubles

    For i = LBound(dataArray) To UBound(dataArray)

        dataArray(i) = CDbl(dataArray(i))

    Next i


    ' Perform FFT (Note: This is a simplified example)

    fftResult = FFT(dataArray)


    ' Prompt user to select the output file

   ''' outputFilePath = Application.GetSaveAsFilename("FFT Output File (*.txt), *.txt")

   outputFilePath = inputFilePath & "_saan_fft_output.txt"

    

    ' Check if the user selected a file

    If outputFilePath = "False" Then

        MsgBox "No output file selected. Exiting."

        Exit Sub

    End If

    

    ' Write the FFT result to the output file

    Open outputFilePath For Output As #2

    For i = LBound(fftResult) To UBound(fftResult)

        Print #2, fftResult(i)

    Next i

    Close #2

    

    MsgBox "FFT complete. Output file saved at: " & outputFilePath

End Sub '''Public Sub FFTToDo()


Function simples_FFT(dataArray() As Double) As Double()

    ' Implement your FFT logic here

    ' This is a simplified example; you may need a more sophisticated FFT library

    

    ' Placeholder for FFT result (just a copy of the input for demonstration)

    simples_FFT = dataArray

End Function ''''''Function simples_FFT(dataArray() As Double) As Double()









'''Option Explicit


Public Sub ConvertBengaliTextToNumbers()

    Dim inputFilePath As String

    Dim outputFilePath As String

    Dim inputData As String

    Dim lines() As String

    Dim words() As String

    Dim numericWords() As String

    Dim i As Long, j As Long

    Dim word As String

    Dim outputData As String


    ' Prompt user to select the input file

    inputFilePath = Application.GetOpenFilename("Text Files (*.txt), *.txt")

    

    ' Check if the user selected a file

    If inputFilePath = "False" Then

        MsgBox "No file selected. Exiting."

        Exit Sub

    End If

    

    ' Read the content of the input file

    Open inputFilePath For Input As #1

    inputData = Input$(LOF(1), #1)

    Close #1


    ' Split the input data into lines

    lines = Split(inputData, vbCrLf)


    ' Process each line

    For i = LBound(lines) To UBound(lines)

        ' Split each line into words

        words = Split(lines(i), " ")


        ' Process each word

        For j = LBound(words) To UBound(words)

            ' Convert the word to a numeric representation

            word = words(j)

            If IsBengaliUnicode(word) Then

                ' Convert Bengali Unicode word to a numeric value (placeholder function)

                numericWords = ConvertBengaliToNumbers(word)

               ''' numericWords = numericWords & saan_check_return_numbers_string_ListBengaliCharacters(word)

                

                

                

                ' Accumulate the results

                outputData = outputData & Join(numericWords, ";") & ";"

            Else

                ' If the word is not Bengali Unicode, keep it as is

                outputData = outputData & word & ";"

            End If

        Next j


        ' Add a line break after processing each line

        outputData = outputData & vbCrLf

    Next i


    ' Prompt user to select the output file

   ''' outputFilePath = Application.GetSaveAsFilename("Numeric Output File (*.txt), *.txt")

    outputFilePath = inputFilePath & "_saan_does_bengaliutf8.txt"

    

    

    

    ' Check if the user selected a file

    If outputFilePath = "False" Then

        MsgBox "No output file selected. Exiting."

        Exit Sub

    End If

    

    ' Write the numeric data to the output file

    Open outputFilePath For Output As #2

    Print #2, outputData

    Close #2

    

    MsgBox "Conversion complete. Numeric output file saved at: " & outputFilePath

End Sub '''Public Sub ConvertBengaliTextToNumbers()


'''Public Function IsBengaliUnicode(word As String) As Boolean

'''    ' Implement your logic to check if a word is Bengali Unicode

'''    ' This is a simplified example; you may need to enhance it

'''    ' based on your specific requirements

'''    ' For simplicity, it assumes that the word is Bengali if it contains any Bengali Unicode character

'''    IsBengaliUnicode = InStr(word, "?") > 0 ' Add more characters as needed

'''End Function '''Public Function IsBengaliUnicode(word As String) As Boolean


'''''''''' For i = &H980 To (&H9FF - 1) Step 1

Public Function IsBengaliUnicode(word As String) As Boolean

    Dim bengaliCharacters As String

    bengaliCharacters = ChrW(&H980) & ChrW(&H981)   ' Add more Bengali characters as needed

    

    Dim i As Long

    For i = 1 To Len(bengaliCharacters)

        If InStr(word, Mid(bengaliCharacters, i, 1)) > 0 Then

            IsBengaliUnicode = True

            Exit Function

        End If

    Next i

    

    IsBengaliUnicode = False

End Function '''Public Function IsBengaliUnicode(word As String) As Boolean



Public Sub ListBengaliCharacters()

    Dim bengaliCharacters As String

    Dim unicodeValue As Long

    Dim i As Long

    

    ' Initialize the string

    bengaliCharacters = ""

    

    ' Add Bengali characters to the string

    For i = &H980 To &H9FF

        unicodeValue = i

        bengaliCharacters = bengaliCharacters & ChrW(unicodeValue)

    Next i

    

    ' Display the list of Bengali characters

    MsgBox bengaliCharacters

End Sub '''Public Sub ListBengaliCharacters()










Public Function ConvertBengaliToNumbers(bengaliWord As String) As String()

    ' Implement your logic to convert Bengali Unicode to numbers

    ' This is a placeholder function; you should replace it with your actual conversion logic

    Dim i As Long

    Dim result() As String

    ReDim result(1 To Len(bengaliWord))

    

    For i = 1 To Len(bengaliWord)

        ' Convert each Bengali character to a numeric value

        ' You need to define the conversion logic for Bengali characters

        result(i) = CStr(AscW(Mid(bengaliWord, i, 1)))

        '''  & "   " &  & saan_check_return_numbers_string_ListBengaliCharacters(word)

    Next i

    

    ConvertBengaliToNumbers = result

End Function '''Public Function ConvertBengaliToNumbers(bengaliWord As String) As String()


Public Function saan_check_return_numbers_string_ListBengaliCharacters(bengaliWord As String) As String

    Dim bengaliCharacters As String

    Dim unicodeValue As Long

    Dim i As Long

    Dim returnstring As String

    ' Initialize the string

    bengaliCharacters = ""

    

    

    Dim k As Long

    Dim result() As String

    ReDim result(1 To Len(bengaliWord))

    

    For k = 1 To Len(bengaliWord)


    

    

    

    


        ' Convert each Bengali character to a numeric value

        ' You need to define the conversion logic for Bengali characters

        result(k) = CStr(AscW(Mid(bengaliWord, k, 1)))

        

          ' Add Bengali characters to the string

    For i = &H980 To &H9FF

        unicodeValue = i

        bengaliCharacters = bengaliCharacters & ChrW(unicodeValue)

    Next i

    

      

        

    Next k

    

    

    

    

    

    

    ' Display the list of Bengali characters

    '''MsgBox bengaliCharacters

    

    saan_check_return_numbers_string_ListBengaliCharacters = returnstring

    

End Function '''Public Function saan_check_return_numbers_string_ListBengaliCharacters() As String





'''Option Explicit


Public Sub GeneratePolygonCoordinates_previous()

    Dim centerX As Double

    Dim centerY As Double

    Dim radius As Double

    Dim n As Integer

    Dim angleIncrement As Double

    Dim angles() As Double

    Dim coordinates() As Variant

    Dim i As Integer


    ' User input: center coordinates and radius

    centerX = InputBox("Enter X-coordinate of the center:")

    centerY = InputBox("Enter Y-coordinate of the center:")

    radius = InputBox("Enter the radius:")

    

    ' User input: number of sides

    n = InputBox("Enter the number of sides (3 or more):")


    ' Validate input

    If n < 3 Then

        MsgBox "Number of sides must be 3 or more. Exiting."

        Exit Sub

    End If


    ' Calculate angle increment

    angleIncrement = 360 / n


    ' Initialize arrays

    ReDim angles(1 To n)

    ReDim coordinates(1 To n, 1 To 2)


    ' Calculate angles and coordinates

    For i = 1 To n

        angles(i) = (i - 1) * angleIncrement

        coordinates(i, 1) = centerX + radius * Cos(previous_DegToRad(angles(i)))

        coordinates(i, 2) = centerY + radius * Sin(previous_DegToRad(angles(i)))

    Next i


    ' Output coordinates

    MsgBox "Coordinates of the vertices (anticlockwise order):" & vbCrLf & vbCrLf & previous_GetCoordinatesString(coordinates)

End Sub '''Public Sub GeneratePolygonCoordinates_previous()


Public Function previous_DegToRad(ByVal degrees As Double) As Double

    previous_DegToRad = degrees * Application.WorksheetFunction.Pi / 180

End Function '''Public Function previous_DegToRad(ByVal degrees As Double) As Double


Public Function previous_GetCoordinatesString(coordinates() As Variant) As String

    Dim i As Integer

    Dim result As String

    

    For i = LBound(coordinates, 1) To UBound(coordinates, 1)

        result = result & "Vertex " & i & ": (" & coordinates(i, 1) & ", " & coordinates(i, 2) & ")" & vbCrLf

    Next i

    

    previous_GetCoordinatesString = result

End Function '''Public Function previous_GetCoordinatesString(coordinates() As Variant) As String

















'''Option Explicit


'''Public Sub GeneratePolygonCoordinates()

'''    Dim perimeter As Double

'''    Dim n As Integer

'''    Dim commonDifference As Double

'''    Dim sideLengths() As Double

'''    Dim centerX As Double

'''    Dim centerY As Double

'''    Dim radius As Double

'''    Dim angleIncrement As Double

'''    Dim angles() As Double

'''    Dim coordinates() As Variant

'''    Dim i As Integer

'''

'''    ' User input: perimeter and number of sides

'''    perimeter = InputBox("Enter the perimeter:")

'''    n = InputBox("Enter the number of sides (3 or more):")

'''

'''    ' Validate input

'''    If n < 3 Then

'''        MsgBox "Number of sides must be 3 or more. Exiting."

'''        Exit Sub

'''    End If

'''

'''    ' Calculate common difference for AP series of side lengths

'''    commonDifference = perimeter / n

'''

'''    ' Initialize array for side lengths

'''    ReDim sideLengths(1 To n)

'''

'''    ' Populate side lengths array

'''    For i = 1 To n

'''        sideLengths(i) = commonDifference * i

'''    Next i

'''

'''    ' Calculate angle increment

'''    angleIncrement = 360 / n

'''

'''    ' Initialize arrays

'''    ReDim angles(1 To n)

'''    ReDim coordinates(1 To n, 1 To 2)

'''

'''    ' Calculate angles and coordinates

'''    For i = 1 To n

'''        angles(i) = (i - 1) * angleIncrement

'''        coordinates(i, 1) = radius * Math.Cos(DegToRad(angles(i)))

'''        coordinates(i, 2) = radius * Math.Sin(DegToRad(angles(i)))

'''    Next i

'''

'''    ' Output coordinates

'''    MsgBox "Coordinates of the vertices (anticlockwise order):" & vbCrLf & vbCrLf & GetCoordinatesString(coordinates)

'''End Sub ''Public Sub GeneratePolygonCoordinates()

'''

'''Function DegToRad(ByVal degrees As Double) As Double

'''    DegToRad = degrees * Application.WorksheetFunction.Pi / 180

'''End Function

'''

'''Function GetCoordinatesString(coordinates() As Variant) As String

'''    Dim i As Integer

'''    Dim result As String

'''

'''    For i = LBound(coordinates, 1) To UBound(coordinates, 1)

'''        result = result & "Vertex " & i & ": (" & Str(coordinates(i, 1)) & ", " & Str(coordinates(i, 2)) & ")" & vbCrLf

'''    Next i

'''

'''    GetCoordinatesString = result

'''End Function

'''

'''



Option Explicit


Public Sub GeneratePolygonCoordinates()

    Dim perimeter As Double

    Dim n As Integer

    Dim commonDifference As Double

    Dim initialSideLength As Double

    Dim sideLengths() As Double

    Dim centerX As Double

    Dim centerY As Double

    Dim radius As Double

    Dim angleIncrement As Double

    Dim angles() As Double

    Dim coordinates() As Variant

    Dim i As Integer


    ' User input: perimeter and number of sides

    perimeter = InputBox("Enter the perimeter:")

    n = InputBox("Enter the number of sides (3 or more):")


    ' Validate input

    If n < 3 Then

        MsgBox "Number of sides must be 3 or more. Exiting."

        Exit Sub

    End If


    ' Calculate initial side length (minimum for the condition)

    initialSideLength = perimeter / n


    ' Calculate common difference for AP series of side lengths

    commonDifference = initialSideLength


    ' Initialize array for side lengths

    ReDim sideLengths(1 To n)


    ' Populate side lengths array

    For i = 1 To n

        sideLengths(i) = initialSideLength + (i - 1) * commonDifference

    Next i


    ' Calculate angle increment

    angleIncrement = 360 / n


    ' Initialize arrays

    ReDim angles(1 To n)

    ReDim coordinates(1 To n, 1 To 2)


    ' Calculate angles and coordinates

    For i = 1 To n

        angles(i) = (i - 1) * angleIncrement

        coordinates(i, 1) = sideLengths(i) * Cos(DegToRad(angles(i)))

        coordinates(i, 2) = sideLengths(i) * Sin(DegToRad(angles(i)))

    Next i


    ' Output coordinates

    MsgBox "Coordinates of the vertices (anticlockwise order):" & vbCrLf & vbCrLf & GetCoordinatesString(coordinates)

End Sub '''Public Sub GeneratePolygonCoordinates()










Public Sub GeneratePolygonCoordinates___WRITE_DATA_IN_SHEET_11_open_polygons()


'''COL 1             COL 2          COL 3      COL3+               COL3++      COL 6      COL 6+


'''N_GON_TAKEN       N_GON_SIDE      GGG        VERTEX_COUNTER      X          Y           PERIMETER


Sheet11.Activate

Sheet11.Range("A2:H30000").Select

Selection.ClearContents






Dim logger_row As Integer

logger_row = 2


    Dim perimeter As Double

    Dim n As Integer

    Dim commonDifference As Double

    Dim initialSideLength As Double

    Dim sideLengths() As Double

    Dim centerX As Double

    Dim centerY As Double

    Dim radius As Double

    Dim angleIncrement As Double

    Dim angles() As Double

    Dim coordinates() As Variant

    Dim i As Integer


    ' User input: perimeter and number of sides

    perimeter = InputBox("Enter the perimeter:")

    n = InputBox("Enter the number of sides (3 or more):")


    ' Validate input

    If n < 3 Then

        MsgBox "Number of sides must be 3 or more. Exiting."

        Exit Sub

    End If


    ' Calculate initial side length (minimum for the condition)

    initialSideLength = perimeter / n


    ' Calculate common difference for AP series of side lengths

    commonDifference = initialSideLength


    ' Initialize array for side lengths

    ReDim sideLengths(1 To n)


    ' Populate side lengths array

    For i = 1 To n

        sideLengths(i) = initialSideLength + (i - 1) * commonDifference

    Next i


    ' Calculate angle increment

    angleIncrement = 360 / n


    ' Initialize arrays

    ReDim angles(1 To n)

    ReDim coordinates(1 To n, 1 To 2)


    ' Calculate angles and coordinates

    For i = 1 To n

        angles(i) = (i - 1) * angleIncrement

        coordinates(i, 1) = sideLengths(i) * Cos(DegToRad(angles(i)))

        coordinates(i, 2) = sideLengths(i) * Sin(DegToRad(angles(i)))

        

        

        

'''COL 1             COL 2          COL 3      COL3+               COL3++      COL 6      COL 6+


'''N_GON_TAKEN       N_GON_SIDE      GGG        VERTEX_COUNTER      X          Y           PERIMETER




        Sheet11.Cells(logger_row, 1) = n

        Sheet11.Cells(logger_row, 2) = sideLengths(i)

        Sheet11.Cells(logger_row, 3) = i

        Sheet11.Cells(logger_row, 3 + 1) = i

        Sheet11.Cells(logger_row, 3 + 2) = coordinates(i, 1)

        Sheet11.Cells(logger_row, 3 + 3) = coordinates(i, 2)

        Sheet11.Cells(logger_row, 6 + 1) = perimeter

        

        logger_row = logger_row + 1

        

    Next i


    ' Output coordinates

    MsgBox "Coordinates of the vertices (anticlockwise order):" & vbCrLf & vbCrLf & GetCoordinatesString(coordinates)

End Sub '''Public Sub GeneratePolygonCoordinates()





'''Public Function DegToRad(ByVal degrees As Double) As Double

'''    DegToRad = degrees * Application.WorksheetFunction.Pi / 180

'''End Function '''public Function DegToRad(ByVal degrees As Double) As Double

'''

'''Public Function GetCoordinatesString(coordinates() As Variant) As String

'''    Dim i As Integer

'''    Dim result As String

'''

'''    For i = LBound(coordinates, 1) To UBound(coordinates, 1)

'''        result = result & "Vertex " & i & ": (" & coordinates(i, 1) & ", " & coordinates(i, 2) & ")" & vbCrLf

'''    Next i

'''

'''    GetCoordinatesString = result

'''End Function '''Public Function GetCoordinatesString(coordinates() As Variant) As String

'''

'''

'''

'''Option Explicit


'''Sub GeneratePolygonCoordinates()

Public Sub GeneratePolygonCoordinates___WRITE_DATA_IN_SHEET_11()


'''COL 1             COL 2          COL 3      COL3+               COL3++      COL 6      COL 6+


'''N_GON_TAKEN       N_GON_SIDE      GGG        VERTEX_COUNTER      X          Y           PERIMETER



'''COL 1             COL 2          COL 3      COL3+               COL3++      COL 6      COL 6+


'''N_GON_TAKEN       N_GON_SIDE      GGG        VERTEX_COUNTER      X          Y           PERIMETER


Sheet11.Activate

Sheet11.Range("A2:H30000").Select

Selection.ClearContents



Dim logger_row As Integer

logger_row = 2


    Dim perimeter As Double

    Dim n As Integer

    Dim commonDifference As Double

    Dim initialSideLength As Double

    Dim sideLengths() As Double

    Dim centerX As Double

    Dim centerY As Double

    Dim radius As Double

    Dim angleIncrement As Double

    Dim angles() As Double

    Dim coordinates() As Variant

    Dim i As Integer


    ' User input: perimeter and number of sides

    perimeter = InputBox("Enter the perimeter:")

    n = InputBox("Enter the number of sides (3 or more):")


    ' Validate input

    If n < 3 Then

        MsgBox "Number of sides must be 3 or more. Exiting."

        Exit Sub

    End If


    ' Calculate initial side length (minimum for the condition)

    initialSideLength = perimeter / n


    ' Calculate common difference for AP series of side lengths

    commonDifference = initialSideLength


    ' Initialize array for side lengths

    ReDim sideLengths(1 To n)


    ' Populate side lengths array

    For i = 1 To n - 1

        sideLengths(i) = initialSideLength + (i - 1) * commonDifference

    Next i


    ' The last side length should be equal to the initial side length for a closed polygon

    sideLengths(n) = initialSideLength


    ' Calculate angle increment

    angleIncrement = 360 / n


    ' Initialize arrays

    ReDim angles(1 To n)

    ReDim coordinates(1 To n, 1 To 2)


    ' Calculate angles and coordinates

    For i = 1 To n

        angles(i) = (i - 1) * angleIncrement

        coordinates(i, 1) = sideLengths(i) * Cos(DegToRad(angles(i)))

        coordinates(i, 2) = sideLengths(i) * Sin(DegToRad(angles(i)))

        

        

        

        Sheet11.Cells(logger_row, 1) = n

        Sheet11.Cells(logger_row, 2) = sideLengths(i)

        Sheet11.Cells(logger_row, 3) = i

        Sheet11.Cells(logger_row, 3 + 1) = i

        Sheet11.Cells(logger_row, 3 + 2) = coordinates(i, 1)

        Sheet11.Cells(logger_row, 3 + 3) = coordinates(i, 2)

        Sheet11.Cells(logger_row, 6 + 1) = perimeter

        

        logger_row = logger_row + 1

        

    Next i


    ' Output coordinates

    MsgBox "Coordinates of the vertices (anticlockwise order):" & vbCrLf & vbCrLf & GetCoordinatesString(coordinates)

End Sub


Public Function DegToRad(ByVal degrees As Double) As Double

    DegToRad = degrees * Application.WorksheetFunction.Pi / 180

End Function '''Public Function DegToRad(ByVal degrees As Double) As Double


Public Function GetCoordinatesString(coordinates() As Variant) As String

    Dim i As Integer

    Dim result As String

    

    For i = LBound(coordinates, 1) To UBound(coordinates, 1)

        result = result & "Vertex " & i & ": (" & coordinates(i, 1) & ", " & coordinates(i, 2) & ")" & vbCrLf

    Next i

    

    GetCoordinatesString = result

End Function '''Public Function GetCoordinatesString(coordinates() As Variant) As String


Comments

Popular posts from this blog

actions events in itext 7

midi_sequence_playing_real_time

RELATING_SANJOY_NATH'S_QHENOMENOLOGY_WITH_SANJOY_NATH'S_GEOMETRIFYING_TRIGONOMETRY