dimix писал(а):Есть текстовый файл. Например, информация такого вида:
Иванов;Иван;Иванович
Петров;Сергей;Федорович
...
...
Мне нужно получать данные из файла, но не обязательно все. Например, получить всех с фамилией Иванов, или всех с именем Сергей. Поскольку все равно придется читать весь файл, наверное имеет смысл прочитать его сразу и запихнуть данные в массив. А потом уже в массиве искать, фильтровать, сортировать.
Но файл не маленький - 20Мб, почти 200 тысяч строк. Какое решение задачи будет наиболее оптимальным?
P.S. Поиском пользовался - классная вещь, всем рекомендую , но хочется с вашей помощью выбрать наиболее оптимальный вариант.
А в чем будет заключаться работа с БД? Обращаться к файлу как к БД, или преобразовать его во что-то? Немного поясню. Хоть я и сказал, что файл не изменяется
Быстрее, проще & полезней
пишу программы на VB чисто для себя
досконально изучать VB просто нет времени
у тебя наверное много денег ... тогда в чем вопрос?
Загружаешь свой файл в переменную, смотришь какой у тебя в файле разделитель - split (переменная , разделитель)
dimix писал(а):у тебя наверное много денег ... тогда в чем вопрос?
Дело не в деньгах. Просто VB не имеет никакого отношения к моей работе. Просто люблю программить.
Образовываться не упираюсь. Я вообще просто ни с того ни с сего скачал VB и начал в него врубаться. А по поводу БД - мне так никто и не ответил, в чем же эта базоданность будет заключаться в моем случае?
gjghjc писал(а):Поищи на форуме посты про DBF... Очень рекомендую.. и таблица простая получится и коннект к ней не сложный + если все по уму сделать то и инсталлятор не понадобится (за исключением Win98) А уже из DBF при помощи запросов все данные выдернешь очень просто
dimix писал(а):gjghjc писал(а):Поищи на форуме посты про DBF... Очень рекомендую.. и таблица простая получится и коннект к ней не сложный + если все по уму сделать то и инсталлятор не понадобится (за исключением Win98) А уже из DBF при помощи запросов все данные выдернешь очень просто
Нельзя мне изменять исходный файл. И создавать его копию, конвертировать в DBF тоже нельзя. Ибо он может в любой момент измениться (не мной) и мне нужно будет его перечитать. Предполагаю, кнопочкой "Обновить". Тогда я очищу свой массив и заново прочитаю в него txt. Если для каждого обновления конвертить файл в DBF...
SergT писал(а):While pos > 0
parseleft = Left(textline, pos - 1) ' Get left word.
parseleft = Trim(parseleft)
parseNum = Val(parseleft)
total = total + parseNum
textline = Right(textline, Len(textline) - pos)
results.Text = results.Text + textline + Chr(13) + Chr(10)
pos = InStr(1, textline, ",") ' Find ,
Wend
А если шнур из розетки выскочил? Access мог бы выручить
если откроешь файл как базу, то будет еще проще
но это я повторяюсь
lord0n писал(а):когда сделаешь - напиши как?
dimix писал(а):lord0n писал(а):когда сделаешь - напиши как?
Не вопрос, обязательно напишу. Но все же хотелось узнать, как открывать текстовый файл "как базу". В смысле, что это означает?
Set db = New ADODB.Connection
Set RS = New ADODB.Recordset
db.CursorLocation = adUseClient
db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\txtFilesFolder\;Extended Properties=""text;HDR=Yes;FMT=Delimited"""
Dim db As Connection
Dim RS As Recordset
Set db = New ADODB.Connection
Set RS = New ADODB.Recordset
db.CursorLocation = adUseClient
db.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\1.txt;Extended Properties=""text;FMT=Delimited"""
Обновление невозможно. База данных или объект доступны только для чтения.
Сейчас этот форум просматривают: Google-бот, SemrushBot и гости: 31