чтени из файла, запись в БД
В файле первые две строки не нужны (заголовки), а следующие строки с данными нужно считать. данные разделены табуляторами (10 столбцов).
И еще та же самая задача, только читать нужно все файлы в указанной директории.
Кто-нибудь, подскажите вариант решения.
Есть задача: из текстового файла нужно записать данные в таблицу БД Access.
В файле первые две строки не нужны (заголовки), а следующие строки с данными нужно считать. данные разделены табуляторами (10 столбцов).
И еще та же самая задача, только читать нужно все файлы в указанной директории.
Кто-нибудь, подскажите вариант решения.
так что подсказать то? Как читать данные из файла? Как писАть в базу? Или как получить файлы в указанной директории?
Простейшее решение (правда не самое эффективное)читать стороку из файла и парсить ее начиная с конца. Так же, не плохо бы устанавливать флаг, как вести себя в случае ошибок, вести список строк, которые считаны без ошибок и список непрочитаных строк - вобщем навороты. Когда столбцы получены - инсертишь их в базу. Можно делать это сразу, можно через определенное кол-во строк. С файлами тоже самое, сначала получаешь список файлов, затем с каждым выполняешь нужную операцию, последовательно или в разных потоках.
так что подсказать то? Как читать данные из файла? Как писАть в базу? Или как получить файлы в указанной директории?
Простейшее решение (правда не самое эффективное)читать стороку из файла и парсить ее начиная с конца. Так же, не плохо бы устанавливать флаг, как вести себя в случае ошибок, вести список строк, которые считаны без ошибок и список непрочитаных строк - вобщем навороты. Когда столбцы получены - инсертишь их в базу. Можно делать это сразу, можно через определенное кол-во строк. С файлами тоже самое, сначала получаешь список файлов, затем с каждым выполняешь нужную операцию, последовательно или в разных потоках.
как записать в бд я примерно знаю, а вот как читать из файла построчно данные, и то что между табуляторов записывать в переменные, вот что нуна. И как пропустить первые две строки файла?
как записать в бд я примерно знаю, а вот как читать из файла построчно данные, и то что между табуляторов записывать в переменные, вот что нуна. И как пропустить первые две строки файла?
TStringList *Params = new TStringList;
ifstream in("some.file");
char buffer[MAX_SIZE];
int count = 0;
while(in){
in.getline(buffer,MAX_SIZE);
if(count > 1){
//
stGetLine = buffer;
while(stGetLine.Leigth()){
stParams = stGetLine.SubStr(stGetLine.LastDelimeter("\t")+1,stGetLine.Leigth());
Params->Add(stParams);
stGetLine = stGetLine.Delete(stGetLine.LastDelimeter("\t"),stGetLine.Leigth());
}
}
++count;
}
...
...
delete Params;
УРЛАЙТ РАБОТАЕТ!!! БОЛЬШОЙ РЕСПЕКТ!!!
Какой еще респект??? Тут извращения сплошные.
У TStringList есть свойство Delimiter туда пихъаем разделитесь.
DelimitedText - сюда текст
И все=) И стринг содержит список строк.
Какой еще респект??? Тут извращения сплошные.
У TStringList есть свойство Delimiter туда пихъаем разделитесь.
DelimitedText - сюда текст
И все=) И стринг содержит список строк.
Ну по большому счету использовать ТАК TStringList - практически в любом виде изврат. С разделителем ли, без разделителя... Да и чтение по сторокам тоже не самый эффективный метод - особенно без контроля размеров буфера и реального размера строки+количества разделителей в строке и пр. По уму должена быть функция читающая данные, функция разбиркающая прочитанное как минимум и функция которая все это пихает в массив параметров.