Solved

Merge text Files

Posted on 2009-05-03
4
499 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

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

More often than not, we developers are confronted with a need: a need to make some kind of magic happen via code. Whether it is for a client, for the boss, or for our own personal projects, the need must be satisfied. Most of the time, the Framework…
Real-time is more about the business, not the technology. In day-to-day life, to make real-time decisions like buying or investing, business needs the latest information(e.g. Gold Rate/Stock Rate). Unlike traditional days, you need not wait for a fe…
Illustrator's Shape Builder tool will let you combine shapes visually and interactively. This video shows the Mac version, but the tool works the same way in Windows. To follow along with this video, you can draw your own shapes or download the file…
This video gives you a great overview about bandwidth monitoring with SNMP and WMI with our network monitoring solution PRTG Network Monitor (https://www.paessler.com/prtg). If you're looking for how to monitor bandwidth using netflow or packet s…

705 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

Need Help in Real-Time?

Connect with top rated Experts

18 Experts available now in Live!

Get 1:1 Help Now