Hello, this is another post form a previous one that I was able to solve, but this one has to be more with a efficient method to achieve the following goal.

I have a text file, which contains bunch of lines like this ones : (sorry about the identation) apphelp.dll 5.1.2600.5512 Application Compatibility Client Library appmgmts.dll 5.1.2600.5512 Software installation Service appmgr.dll 5.1.2600.5512 Software Installation Snapin Extenstion asferror.dll 11.0.5721.5145 Definice chyb ASF
    asycfilt.dll               5.1.2600.5512
ati2cqag.dll 6.14.10.233 Central Memory Manager / Queue Server Module ati2dvaa.dll 6.13.10.5019 ATI RAGE 128 WindowsNT Display Driver
   divxwmpexttype.dll           


So I was doing scanning the string (which came from the file) reading the library name and saving the result into productName, then the version and then the description, then Im reading an empty string to put the scanner on the next line,
        
                [theScanner scanUpToString:@"   " intoString:&productName];
                [theScanner scanString:@"" intoString:NULL];
                [theScanner scanUpToString:@"  " intoString:&version];
                [theScanner scanString:@"" intoString:NULL];
                [theScanner scanUpToString:@"  " intoString:&des];
                [theScanner scanString:@"" intoString:NULL];

All the above in a while loop.
BUT!, here is where it got weird for me. the file is not consistent on each road, as you can see the line that contains the asycfilt.dll has a version, but has no description, so when running the loop, after it successfully scan the previous road, start scanning this particular line, gets the library name, then the version, and in the status will get the next library name, which its wrong, also it will happen something similar with the last library name, which contains no version and no description, in this case in &version will put the next library name(which is in the next line, I didn't put it), and the description will be the version of the last library name.

I have tried many things, but no success, I have getting the NScharacterset for a line break, and try to read until there, but its always doing the same thing, i guess im not using it properly. , I have tried putting some conditionals to see what I have just scanned, but as you can see all data its different from each other.

The last "hope" I have is to compare the next scanned value to see if the string I have just scanned has a suffix of .dll in that case I know Im in the next line, but im sure there should be some workaround different than this one.


Any help I will really appreciate it.

Thanks a lot

Gustavo





        
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to