hey guys,

I have a fixed length .txt file. Values in the file correspond to columns in a db table.
ex file row is something like:

India 3455 78787 89898

table has columns something like:

column_name length startPosn EndPosn
country 6 1 6
ID 6 7 13

so you see that the spaces are actually part of the values, its not delimited.

what i have to do it insert each value and create 1 row in the db(assuming there's only 1 row in the txt file right now).

Problem is that I will want to give the user some flexibility that he can change column lengths in future. As a result i was thinking of create a .dat file with 'column_name,length,start-posn' mentioned in it for each column. Then i would read this .dat file first. accordingly get the startPosn-length for each column and get the substrings from the original .txt file(which i would have read in a string) and create an insert query.

Just wondering if anyone can suggest a more efficient way to do this or any issues I can get in this approach?

Are you sure that your method is not efficient?
Why?..
What's your efficiency criterion?

Comments
Getting someone else to do it with the minimal amount of explanation ;)

Are you sure that your method is not efficient?
Why?..
What's your efficiency criterion?

well no I'm not sure it is inefficient, actually i don't really know how to calculate efficiency and that's the whole reason I had to post it here. Someone who knows how to do that would tell me if its efficient or not. Or someone who's probably done something like this before could tell me if there are any issues I can face later.

Depending on your platform, you can time your application for a given set of data.
Or you can use a profiler . But whatever you do, please don't optimize your code without analyzing its performance.
Optimize only and only when you really need it.

First write it in the way where you think of that it is the most efficient one, then you post your code here, and after you've posted your code, we can analyze it and make suggestions to increase performance :)

This question has already been answered. Start a new discussion instead.