C# Split xml file into multiple files

Below i have an xml file, in this file, i need to split this xml file into multiple xml files based on date column value,
suppose i have 10 records with 3 different dates then all unique date records should go into each file . for ex here i have a file with three dates my output should get 3 files while each file containing all records of unique date data. I didn't get any idea
to proceed on this, thats the reason am not posting any code.Needed urgently please
<XML>
<rootNode>
<childnode>
<date>2012-12-01</date>
<name>SSS</name>
</childnode>
<childnode>
<date>2012-12-01</date>
<name>SSS</name>
</childnode>
<childnode>
<date>2012-12-02</date>
<name>SSS</name>
</childnode>
<childnode>
<date>2012-12-03</date>
<name>SSS</name>
</childnode>
</rootNode>
</XML>

Here is full code:
using System.Xml.Linq;
class curEntity
public DateTime Date;
public string Name;
public curEntity(DateTime _Date, string _Name)
Date = _Date;
Name = _Name;
static void Main(string[] args)
XElement xmlTree = new XElement("XML",
new XElement("rootNode",
new XElement("childnode",
new XElement("date"),
new XElement("name")
string InfilePath = @"C:\temp\1.xml";
string OutFilePath = @"C:\temp\1_";
XDocument xmlDoc = XDocument.Load(InfilePath);
List<curEntity> lst = xmlDoc.Element("XML").Element("rootNode").Elements("childnode")
.Select(element => new curEntity(Convert.ToDateTime(element.Element("date").Value), element.Element("name").Value))
.ToList();
var unique = lst.GroupBy(i => i.Date).Select(i => i.Key);
foreach (DateTime dt in unique)
List<curEntity> CurEntities = lst.FindAll(x => x.Date == dt);
XElement outXML = new XElement("XML",
new XElement("rootNode")
foreach(curEntity ce in CurEntities)
outXML.Element("rootNode").Add(new XElement("childnode",
new XElement("date", ce.Date.ToString("yyyy-MM-dd")),
new XElement("name", ce.Name)
outXML.Save(OutFilePath + dt.ToString("yyyy-MM-dd") + ".xml");
Console.WriteLine("Done");
Console.ReadKey();

Similar Messages

  • Problem splitting XML Data into multiple files

    I am sending an XML message through an enterprise message source in enterprise link design studio. While I do so, I am getting a heavy error. This error tells me that my path ist wrong, but I am sure this one is right. Actually everything worked fine till I added an attribute twice in my XML. Since this point enterprise link drives me crazy, I have checked on my XML, it is valid, I have checked on my path, which is also ok.
    Anyone some suggestions how to resolve the issue?
    The Error code looks the following:
    Unable to resolve path "/msg" in message field "host" XML.
    XML:
    <msg host="192.168.52.129:18342" app="[ZInvestigationProvider#null]" cat="PROCESS" id="org.sopware.services.exampleuri.impl.CepMessage.21" lvl="INFO" text="Investigation_POSSIBILITY BPEL_ID=330024 - ID=1002, RFID=RFID002, NAME=SSN Emmersberger, StartDate=10 CurrentDate=17, expectedShippingDate=13, currentZone=-1, deliveryTimeAgreement=true" tsp="2007-12-05T22:25:36.093Z" xmlns="http://schemas.sbb.org/management/Notification/1.0" />
    [Oracle BAM Enterprise Link error code:  0x75 -- 0x1, 0x75 -- 0x68]
    Error while processing the data for the step 'Oracle BAM Enterprise Message Receiver'
    [Oracle BAM Enterprise Link error code:  DC -- 0x1, DC -- 0x83]
    Error while processing the data for the step 'Oracle BAM Enterprise Message Receiver'
    [Oracle BAM Enterprise Link error code:  DC -- 0x1, DC -- 0x83]
    Unable to resolve path "/msg" in message field "host" XML.
    XML:
    <msg host="192.168.52.129:18342" app="[ZInvestigationProvider#null]" cat="PROCESS" id="org.sopware.services.exampleuri.impl.CepMessage.21" lvl="INFO" text="Investigation_POSSIBILITY BPEL_ID=330024 - ID=1002, RFID=RFID002, NAME=SSN Emmersberger, StartDate=10 CurrentDate=17, expectedShippingDate=13, currentZone=-1, deliveryTimeAgreement=true" tsp="2007-12-05T22:25:36.093Z" xmlns="http://schemas.sbb.org/management/Notification/1.0" />
    [Oracle BAM Enterprise Link error code:  0x75 -- 0x1, 0x75 -- 0x68]
    Error while processing the data for the step 'Oracle BAM Enterprise Message Receiver'
    [Oracle BAM Enterprise Link error code:  DC -- 0x1, DC -- 0x83]
    Update of Plan "NotificationPLAN" failed.
    [Oracle BAM Enterprise Link error code:  PlanMgr -- 0x1, PlanMgr -- 0xD5]
    Regards,
    Christoph

    Ok what I tried:
    - I restarted the BAM Server
    - I restarted the Design Studio
    - I restarted the oc4j through which I publish the messages through a topic
    Result:
    Unable to resolve path "/msg" in message field "Data" XML.
    XML:
    <msg host="192.168.52.129:18342" app="[ZInvestigationProvider#null]" cat="PROCESS" id="org.sopware.services.exampleuri.impl.CepMessage.21" lvl="INFO" text="Investigation_POSSIBILITY BPEL_ID=330024 - ID=1002, RFID=RFID002, NAME=SSN Emmersberger, StartDate=10 CurrentDate=17, expectedShippingDate=13, currentZone=-1, deliveryTimeAgreement=true" tsp="2007-12-05T22:25:36.093Z" xmlns="http://schemas.sbb.org/management/Notification/1.0" />
    [Oracle BAM Enterprise Link error code:  0x75 -- 0x1, 0x75 -- 0x68]
    Error while processing the data for the step 'Oracle BAM Enterprise Message Receiver'
    [Oracle BAM Enterprise Link error code:  DC -- 0x1, DC -- 0x83]
    Error while processing the data for the step 'Oracle BAM Enterprise Message Receiver'
    [Oracle BAM Enterprise Link error code:  DC -- 0x1, DC -- 0x83]
    Unable to resolve path "/msg" in message field "Data" XML.
    XML:
    <msg host="192.168.52.129:18342" app="[ZInvestigationProvider#null]" cat="PROCESS" id="org.sopware.services.exampleuri.impl.CepMessage.21" lvl="INFO" text="Investigation_POSSIBILITY BPEL_ID=330024 - ID=1002, RFID=RFID002, NAME=SSN Emmersberger, StartDate=10 CurrentDate=17, expectedShippingDate=13, currentZone=-1, deliveryTimeAgreement=true" tsp="2007-12-05T22:25:36.093Z" xmlns="http://schemas.sbb.org/management/Notification/1.0" />
    [Oracle BAM Enterprise Link error code:  0x75 -- 0x1, 0x75 -- 0x68]
    Error while processing the data for the step 'Oracle BAM Enterprise Message Receiver'
    [Oracle BAM Enterprise Link error code:  DC -- 0x1, DC -- 0x83]
    Update of Plan "NotificationPLAN" failed.
    [Oracle BAM Enterprise Link error code:  PlanMgr -- 0x1, PlanMgr -- 0xD5]

  • Split TempDB Data file into multiple files

    Hey , 
    I have been seeing TempDB contention in memory on our SQL server 2012 Enterprise Edition with SP2 and I need to split TempDB Data file into multiple files .
    Could someone please help me to verify the following information:
    1]
    We are on SQL server 2012 Enterprise Edition with service pack2 but as per SQL Server 2012 Enterprise Edition under CAL Licensing –We are limited to use 20 logical processors instead 40 logical processors. Our SQL is configured
    on NUMA nodes and with the limitation SQL uses only 2 NUMA nodes on live .There are 10 logical CPUs are evenly assigned to each NUMA nodes. Microsoft recommends that if SQL server configured on NUMA node and we have 2 NUMA nodes, then we may add two data files
    at a time. Please let me know should I add two TempDB data file at a time?
    2] We have TempDB Data and log files both on the same Drive of SQL server  .When I split TempDB into two Data files, I can get them on the same Drive .What your recommendation should I need to create TempDB Data files on the same drive or on separate
    disks?
    3] What would be the blackout plan for splitting the tempdb into multiple files? Please let me know if someone has a better back out plan ?
                1] Run script that create tempdb Database with a single file
    2] Reboot SQL service in order to apply change   
    Your help will be apprecited .
    Thanks ,
    Daizy

    Tom , I am seeing TempDB contention on Production server when there is a heavily load on sql server . We also experiencing the overall system slowness.Please look at Pagelatch wait statistics on our server ,Please advise .
    wait_type
    waiting_tasks_count
    wait_time_ms
    max_wait_time_ms
    signal_wait_time_ms
    PAGELATCH_UP
    2680948
    3609142
    10500
    508214
    PAGELATCH_SH
    1142213
    1338451
    8609
    324538
    PAGELATCH_NL
    0
    0
    0
    0
    PAGELATCH_KP
    0
    0
    0
    0
    PAGELATCH_EX
    44852435
    7798192
    9886
    6108374
    PAGELATCH_DT
    0
    0
    0
    0
    Thanks ,
    Daizy

  • Split XSLT Output into Multiple Files

    I have an XML-to-File scenario working, but now I need to split my XSLT map output into multiple files based on the data.  I have been reading the Jin Shin blog on message splitting, but don't know that it pertains to my situation.
    XML data getting mapped with XSLT map creates output formatted like this.
    <?xml version="1.0" encoding="utf-8"?>
    <ns1:ColdInvoiceData xmlns:ns1="http://graybar.com/cold/invoice">
    <Header>
      <RecordID>HDR</RecordID>
      <InvoiceNumber>15</InvoiceNumber>
    </Header>
    <Details>
      <RecordID>DTL</RecordID>
      <LineItemNumber>001</LineItemNumber>
      <UnitPrice>1.25</UnitPrice>
    </Details>
    <Details>
      <RecordID>DTL</RecordID>
      <LineItemNumber>002</LineItemNumber>
      <UnitPrice>2.22</UnitPrice>
    </Details>
    <Header>
      <RecordID>HDR</RecordID>
      <InvoiceNumber>16</InvoiceNumber>
    </Header>
    <Details>
      <RecordID>DTL</RecordID>
      <LineItemNumber>001</LineItemNumber>
      <UnitPrice>3.33</UnitPrice>
    </Details>
    </ns1:ColdInvoiceData>
    I currently have this output writing to a file (FTP, File Conversion).  A single file is no issue, but I need to send multiple files for every set of HDR/DTL(s).  I also need to put the invoice number in the filename (which is working fine as a parameter in my single FTP File CC now).
    Can I make this happen with message splitting and maybe a second map (GUI map)?  Do I need to adjust the XSLT output XML format to have an invoice level?  Is there a better way to go?
    Thanks!

    I made a change to the namespace used on the Messages/Message1 nodes (since the system-assigned ns0 was already being used in my xml data) and now I am getting output. 
    The problem is that the output matches my input.  As aforementioned, I started with just a one-to-one mapping on every node and field. 
    When I change the mapping to try to force multiple ColdInvoiceData nodes, I get the following error (when my source has two Invoice nodes):
    <Trace level="1" type="T">com.sap.aii.utilxi.misc.api.BaseRuntimeException: RuntimeException in Message-Mapping transformation: Cannot produce target element /ns0:Messages/ns0:Message1/ns1:ColdInvoiceData[2]/Invoice. Check xml instance is valid for source xsd and target-field mapping fulfills requirements of target xsd at
    When my source has one invoice node, it works ok.
    Here is a screenshot of my mapping structure.
    http://webpages.charter.net/kpwendel2/ib.jpg

  • Split SQR output into multiple files And Rename each file.

    Greetings!
    We ran into scenario where we need to split an SQR output (PDF) split into multiple files (each page , each file). More over the out put has to be renamed with EMPLID.
    It is for printing Advices, where we run DDP003 to print all of them, Our requirement needs to have one PDF file for each employee to placed into a shared drive OR to be emailed.
    I was thinking of running the same process in a loop individually, but this is resource intensive. Is there any way we can batch run this SQR process and split into each page (each paychek comes to one page),
    AND
    I need them renamed by SQR as it creates them, Each file would be names as EMPLID.
    This is all in alternative to run process individually by employee , via self service. to not to over laod Process scheduler server.
    Can anyone help me how can we get these thigns done in SQR?
    Thanks in advance.

    You can use the SQR command new-report for each employee which closes the current report output file and opens a new one with the specified file name (e.g. EMPLID).

  • Split download file into multiple files

    Hi all,
    I'd like to split my internal table into multiple files when downloading. The split will be determined by contents of a specific field (e.g. create a new file for every unique country, where country is a key field). The number of files to download can only be determined at runtime.
    Any ideas on how i can resolve this?
    Thanks,
    Chris.

    try this...
    *declare itab1 same as itab
    data : filename(25).
    loop at itab.
    <b>  move-corresponding itab to itab1.
      append itab1.</b>
      at end of BUKRS.
            *use GUI_DOWNLOD    FM here
       *pass itab1 every time here
       *change the filename everytime
         concatenate 'Company_' itab-bukrs into filename.
    <b>   refresh itab.</b>
      endat.
    endloop.

  • Can I export a single file into multiple files?

    Is there an option or a plugin that would allow me to set markers in the audio, and then have Soundbooth export the audio into multiple files?
    As an example, let's say I have a 1 minute audio file. I place a marker at 0:00 and another marker at 0:10 and a third marker at 0:30. I then would select Export Multiple and I would end up with three seperate wav files, one 10 seconds long, the second 20 seconds long and the last one 30 seconds long.
    Thanks

    Hi laforcej
    Open the PDF In Acrobat ...
    Go to Tools -> Pages -> Extract
    Now Select the Page Number you Want to Extract and Save them

  • I am trying to split a document into multiple files and it won't let me

    I have opened my file in Adoble Acrobat Pro, for which I have a year subscription, and the option to split the document is gray (not applicable).  Why would this not be an option?  This file contains multiple docs that were merged into one for ease while emailing.  Now I need to split them back up.  Shouldn't I be able to do this with Acrobat Pro?

    Hi adminkg&a,
    It sounds like the file may have security applied to prevent alteration. Do you see "Secured" in the document's title bar?
    Best,
    Sara

  • Splitting single video into multiple files - workflow improvements?

    I regularly need to split a single video into multiple separate files that are used by other programs.  I'm using Premiere Pro CS4 for a number of reasons including the ability to easily and accurately select a scene by individual frames, native audio and video effects/filters, and the ability to import and export various video types.  I'm open to using other tools, but I haven't yet found one that is even close to Premiere Pro when it comes to accurately selecting split points.
    I'm not a Premiere Pro expert.  I have been doing this for about four months and have read many resources (books, forum posts, help guides) to refine the workflow I'm currently using.  My question:  does anyone know any improvements that might save me time/keystrokes.
    Current workflow:
    I've bound F8 to File > Export > Media
    Import video file
    Open in source monitor
    Set In and Out points for scene in source monitor
    Ctrl-drag from source monitor to Project Panel (creates a subclip)
    Repeat 3 and 4 for all scenes/subclips
    Select all subclips from Project Panel and drag to timeline
    Set work area bar to first subclip in timeline by the following four keystrokes:  Home, Alt-[, PageDown, Alt-]
    Type F8 (File > Export > Media shortcut).  Type output file name, click OK and the first subclip is put in the AME queue
    For the remaining subclips, type: Alt-[, PageDown, Alt-], F8, output file name, OK and repeat until done
    Any thoughts/ideas on workflow improvements?
    Thank you!

    Thank you Hunt.
    For the sake of brevity, I didn't include all of the details about the various aspects of the projects.
    Early on I was doing what you suggested and yes, it is a little quicker.  I learned (painfully) a couple of months later that I sometimes have to go back and adjust the clips and this method (trim to timeline with no subclips) resulted in quite a bit of duplicate effort (to reobtain start/stop points).  I've since learned that managing the "scenes" as subclips in topical bins allows me to go back and make adjustments, long after I've totally forgotten about the project content, without a lot of unnecessary reworking.

  • AppleScript Split text file into multiple files

    I have large text files that I would like to break up into individual files. They are compilations of articles; I want to create a new file for each article, which begins with:
         Document # of #
    I don't think any other lines start with "Document" so that might be fine as a delimiter.
    Also, it would be great if the new files could be named "LAT_1", "LAT_2", etc.
    I found this thread:
    AppleScript separating one text file into many at Paragraph break
    I tried the second script by twtwtw and changed
    set parsingText to "Document"
    but got the following error:
    error "Can’t get item 2 of {\"LAT 1985-1990 local food copy.txt\"}." number -1728 from item 2 of {"LAT 1985-1990 local food copy.txt"}
    I also found this thread but it was too complicated for me to understand. Re: Split a large text file with many entries into separate files
    Can anyone help me modify the script? I've been looking at this as well as Unix commands to use in Terminal, but I'm just too much of a beginner.
    Any assistance is much appreciated!
    Trisha

    Hello
    Here's a modified version of the script in
    Split a large text file with many entries into separate files
    https://discussions.apple.com/thread/5641125?tstart=0
    This will split the given text by delimiter line in the form of "Document # of #" and save each chunk of text from one delimiter to the preceding line of the next delimiter in separate file named after LAT_0000.txt, where 0000 is sequential number starting at 0001.
    Note that any text before the first delimiter is ignored and not saved in output file. You may select multiple input files. Existing file in the destination folder is overwritten. Input text is assumed to be in UTF-8 and each line is termitated by U+000A LINE FEED.
    set ff to choose file with prompt "Choose input file(s)." with multiple selections allowed
    set d to choose folder with prompt "Choose destination folder."
    set args to ""
    repeat with a in {d} & ff
        set args to args & " " & a's POSIX path's quoted form
    end repeat
    do shell script "/usr/bin/perl -CSDA -w <<'EOF' - " & args & "
    use strict;
    sub usage () {
        printf STDERR \"Usage: %s output_directory file [file ...]\\n\", $0;
        exit 1;
    &usage() unless @ARGV > 1;
    my $outdir = shift @ARGV;
    unless ( -d $outdir ) {
        printf STDERR \"Not a directory: %s\\n\", $outdir;
        &usage();
    my $i = 0;
    my ($n, $n0, $t);
    while (<ARGV>) {
        if ( /^ \\s* Document \\s+ [0-9]+ \\s+ of \\s+ [0-9]+ .* $/ox ) {
            $n = sprintf('LAT_%04d.txt', ++$i);             # e.g., LAT_0001.txt
            if ( $n0 ) {
                open(OUT, '>', \"$outdir/$n0\") or die $!;  # overwrite
                print OUT $t;
                close OUT;
            ($n0, $t) = ($n, $_);
        else {
            $t .= $_;
    if ( $n0 ) {
        open(OUT, '>', \"$outdir/$n0\") or die $!;          # overwrite
        print OUT $t;
        close OUT;
    EOF"
    Hope this may help,
    H

  • Single File into multiple files

    Hi,
    I am working on scenario where I will be getting Header,Trailer and in between plant records.
    I will be picking file and need to create a new file for each plant.
    Do we require BPM for this? Can it be achieved in Message mapping only?
    If so how?
    Would appreciate your help.
    Regards,
    Chandra

    Chandra,
    Are u getting Header, Trailer, Plant records as different files from the source or in single file itself? If you are getting from different source then you need BPM. If you are getting single file and need to generate multiple output file then no need for BPM.
    To be more simple  N:1 or N:M then you need BPM.
    1:M then no need for BPM.
    Everything you have to do in the mapping part.
    raj.

  • Adapter file sender doesn't split file into multiple message

    Hi everybody.
    We are in PI 7.0 SP10.
    In adapter file sender, I want to split a file into multiple file.
    We use protocole "file content conversion"
    in the field "recordset per message", I put the value 10 to test.
    The file content 30 records .
    The result we have is the treatment is not split into multiple message .
    The treatment is made but with one message.
    I need  to treat big files.
    Is there some one who have an idea  why t doesn't work ?
    Thanks in advance for your help.
    Regards
    Edited by: Eric  KOralewski on Jun 25, 2009 3:14 PM

    Hi,
    have you specified recordset name......if not, then specify it.............
    in recordset structure, specify like RECORD,1 and not RECORD,*
    again test your scenario......if still your file data is not getting split, then ask your basis guys to do a full CPACache refresh using PIDIRUSER..........your basis guys will know how to do it..........then again test your scneario............
    Regards,
    Rajeev Gupta

  • Split MP3 file into multiple MP3 files

    I've been through the help section and is till cant seem to figure out how to split a large (2 hour) mp3 file into multiple mp3 files.
    I have a 2 hour MP3 recording (Stereo not mono), and I have added markers (by simply pressing keyboard shortcut 'M' to add marker), but now I would like to know how to split that one mp3 files into multiple files from the markers which I have made...
    All my marker types are "Cue" when i pressed 'M' at the locations I want the track to end/start

    You didn't say which version of the program you're using, but in general, there is a way to do this by adding one additional cue at the very end of the file, then "merging" the cues (which converts the space between each cue into a "range"), and batch processing each range out to a separate file.  (Make sure there's a cue at the beginning of the file, or at least the first material you want in a new file.)
    Now that you've done all that work, I'm going to tell you that what you're doing is probably a bad idea.  Opening any mp3 in Audition and resaving back to mp3 means you've doubled the losses and distortion inherent with the mp3 compression.  Audition can't do lossless editing of mp3s.  The bottom line: are you really splitting the file, and does the result have to be mp3 format?  If saving to a (wave file, or any other lossless format, then what I'm saying doesn't matter.
    In any case, "mp3 Direct Cut" is a terrific freeware program that does lossless mp3 editing, and I'd highly recommend you try it.  It's saved my neck a number of times.  See http://www.mpesch3.de.

  • Syndicator Server: possible to split the export file in multiple file?

    Hello,
    is it possible to split the export files into multiple files e. g. at 5000 records?
    Perhaps there is a possibility in the mdss.ini? Or a setting in the mapping?
    Thank your for your responses!
    Melanie

    Hi Melanie,
    - If you are syndicating in the Xml format you have the option to syndicate one xml for every record. or multiple records one xml.
    For this you have to make a simple setting in the Syndicator-> Map properties->XML file output->(multiple files/single file)
    Other way around is:
    - If you are syndiacting in any other format say text then the output file goes as one file for all records present in the MDM repository, for this you can use the search options.
    - Create a search on some field value which will select a set of records from the lot.
    - Then you can syndicate only those records which satisfies the  search criteria.
    - In this way it is possible to syndicate in parts
    Hope It Helped,
    Kindly Reward Points if found useful
    Thanks & Regards
    Simona Pinto

  • How can I split a class into 2 files?

    I converted a C++ program to Java recently and it works fine, but I ran into a problem.
    One file is very large and I need to add more functionality. Unlike with C++ where you can just put new functions in another file, I don't see a way to do it in Java.
    I made another file, and therefore another class, but the compiler complains that it can't call a static function from non-static context. (I did not declare it static so I guess it's assuming it) But I understand why. So I made the new class "extend" the old one so "this" would exist but that doesn't work -- Is it because the new class is a subclass of the original class?
    There must be a way to do this. But I don't see what is likely obvious. HELP! And thanks.

    JavaIsBetterThanCPP wrote:
    There must be a way to do this. But I don't see what is likely obvious. HELP! And thanks.Unfortunately Java has no concept of "partial classes" like C# has. Generally, however, a class that is large enough to split up into separate files is either one class that should be modularized further into separate classes, or it already is modularized and all that code is the result of many inner classes. What some people do is promote those inner classes to top-level members in their own file, and mark them as package-private. Using a package you can basically have two classes that know everything about each other and have full access to each other.
    But personally, and until I see justification otherwise, semantics in Java being unbreakingly tied to a certain file structure and naming is the most bonehead and, frankly, non-Java thing about Java.
    There's probably a pre-processor out there that will let you split a class into multiple files and will combine them into a single source file just-in-time to pass to the compiler.

Maybe you are looking for

  • How to get backed up apps back after restoring it to factory settings

    Hi, I recently tried to update to the new 3.2.1 update, but something happened and it restored my iPad back to factory settings, the good thing was that I backed all my apps before I tried to update, but now I can't figure out how to get them back. I

  • Can I connect my I pad to my hd tv?

    Can I watch a movie from I tunes on my I pad to my tv?

  • Urgent issue in transport - ID objects are missing

    Hi Gurus I used CTS+ to transport request to IR and ID (SAP PI). The transport to repository has successfully been done. However the ID objects are not visible. I have checked the changelists but its not visible there. In cache notification I can som

  • CVI2013: _TARGET_PRODUCT_VERSION_ and _TARGET_FILE_VERSION_ troubles

    I've just noticed another strange behaviour of CVI 2013, and it's related with precompiled headers (am I the only user of this feature?). It's very simple to trigger:  Set up any project for using precompiled headers Set in Target Settings -> Version

  • 2D String array?

    i need a few pointers on the most effecient way to do this. i have a program that processes a log file and extracts a list of all the actions that occured and its respective timestamp but i want to add a 24 hour table that would show how many of a pa