Solved

Merge text Files

Posted on 2009-05-03
4
501 Views
Last Modified: 2013-12-17
I want to create a small program....basically upgrade a .bat program to vb.net program.

merge.bat code
copy clf*.* clf_all.txt
copy data*.* tpdta.txt
copy head*.* tphed.txt
copy pmnt*.* tppay.txt
copy text*.* tptxt.txt
copy sl*.* sl.txt
copy po*.* po.txt

Now i want to create an interface where user can select multiple text and merge them like the above merge.bat program.

Can some1 help me out. I know its a really simple program but i have not done any windows coding.
0
Comment
Question by:AsishRaj
  • 3
4 Comments
 
LVL 8

Accepted Solution

by:
RyanAndres earned 500 total points
ID: 24292280

Private Shared Sub Main(ByVal args As String())
    Dim filenames As String() = New String(2) {}
    filenames(0) = "file1.txt"
    filenames(1) = "file2.txt"
    filenames(2) = "file3.txt"
   
    Dim stream As New FileStream("output.txt", FileMode.OpenOrCreate, FileAccess.Write)
   
    For Each file As String In filenames
        Dim data As Byte() = GetDataFromFile(file)
        stream.Write(data, 0, data.Length)
    Next
   
    stream.Close()
End Sub

Private Shared Function GetDataFromFile(ByVal filename As String) As Byte()
    Dim stream As New FileStream(filename, FileMode.Open)
   
    Dim buffer As Byte() = New Byte(stream.Length - 1) {}
    stream.Read(buffer, 0, CInt(stream.Length))
   
    stream.Close()
    Return buffer
End Function
0
 
LVL 8

Assisted Solution

by:RyanAndres
RyanAndres earned 500 total points
ID: 24292287
Of course you want to include file exist checks and catch other necessary exceptions.

The code above was converted from C# using a web resource. Below is the C# code.
static void Main(string[] args)
{
    string[] filenames = new string[3];
    filenames[0] = "file1.txt";
    filenames[1] = "file2.txt";
    filenames[2] = "file3.txt";
 
    FileStream stream = new FileStream("output.txt",
        FileMode.OpenOrCreate, FileAccess.Write);
 
    foreach (string file in filenames)
    {
        byte[] data = GetDataFromFile(file);
        stream.Write(data, 0, data.Length);
    }
 
    stream.Close();
}
 
private static byte[] GetDataFromFile(string filename)
{
    FileStream stream = new FileStream(filename, FileMode.Open);
    
    byte[] buffer = new byte[stream.Length];
    stream.Read(buffer, 0, (int)stream.Length);
 
    stream.Close();
    return buffer;
}

Open in new window

0
 

Expert Comment

by:dotnetanu
ID: 33642874
I want to merge files not to join them. I mean i have file1 and file2 which has to be merged not join
0
 
LVL 8

Expert Comment

by:RyanAndres
ID: 33642895
Merging requires logic. How will they merge? Could you use something like winmerge?
0

Featured Post

Master Your Team's Linux and Cloud Stack!

The average business loses $13.5M per year to ineffective training (per 1,000 employees). Keep ahead of the competition and combine in-person quality with online cost and flexibility by training with Linux Academy.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

This article describes relatively difficult and non-obvious issues that are likely to arise when creating COM class in Visual Studio and deploying it by professional MSI-authoring tools. It is assumed that the reader is already familiar with the cla…
Today I had a very interesting conundrum that had to get solved quickly. Needless to say, it wasn't resolved quickly because when we needed it we were very rushed, but as soon as the conference call was over and I took a step back I saw the correct …
Microsoft Active Directory, the widely used IT infrastructure, is known for its high risk of credential theft. The best way to test your Active Directory’s vulnerabilities to pass-the-ticket, pass-the-hash, privilege escalation, and malware attacks …
This video shows how to use Hyena, from SystemTools Software, to bulk import 100 user accounts from an external text file. View in 1080p for best video quality.

809 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question