Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.04.2011, 10:46   #1
cw82
Пользователь
 
Аватар для cw82
 
Регистрация: 14.10.2010
Сообщений: 52
По умолчанию Выборка из файла .txt

Добрый день уважаемые. Я новичок в программировании (Delphi6). Прошу подсказать, задача следующая- есть файл 11.txt в нем около 3000 сторок, каждая строка идентична предыдущей т.е. каждый символ находиться в том же "месте" как и в предыдущей строке. Нужно сделать выборку по каждой строке во всем файле, выбрать только нужные символы и чтобы в конечном счете пользователь увидел в DBGridEh красивую таблицу с нужными символами в нужных столбцах. Вот пример двух строк из файла..
7869 11 LOC-1000 KTC-Aktobe-c1 2 20110420235900LOC-1000
7870 10 LOC-1000 EMG-Zhamansr-o1 4 20110420235904LOC-1000
Пользователю нужно видеть в DBGridEh только вот это
11 KTC-Aktobe-c1 2 20110420 235900
10 EMG-Zhamansr-o1 4 20110420 235904
Проект меня очень заинтересовал, подскажите или направьте в нужном направлении. Заранее благодарю.
cw82 вне форума Ответить с цитированием
Старый 21.04.2011, 10:57   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

файл изменяется? Если да - то как часто?
цель подобных действий? (просто визуализация)?

я бы лично написал загрузку данного файла в таблицу (любую!) хоть в DBF,
хоть в MS Access, SQLite, FireBird, MS SQL server и т.д... что ближе/роднее/удобнее...
и потом уже визуализировал, фильтровал, формировал отчёты ну и т.д., что нужно...

можно и с TXT напрямую работать (читать тут). Но, мне кажется, это менее удобно и медленее (да и накладывает дополнительные требования к формату TXT)...

Последний раз редактировалось Serge_Bliznykov; 21.04.2011 в 11:02.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.04.2011, 11:07   #3
cw82
Пользователь
 
Аватар для cw82
 
Регистрация: 14.10.2010
Сообщений: 52
Радость

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
файл изменяется? Если да - то как часто?
цель подобных действий? (просто визуализация)?

я бы лично написал загрузку данного файла в таблицу (любую!) хоть в DBF,
хоть в MS Access, SQLite, FireBird, MS SQL server и т.д... что ближе/роднее/удобнее...
и потом уже визуализировал, фильтровал, формировал отчёты ну и т.д., что нужно...

можно и с TXT напрямую работать. Но, мне кажется, это менее удобно...
Да файл меняется часто, перед обработкой я его скопирую по локалке на свой комп(здесь я сам разберусь). Ближе Access, намекните пожалуйста как можно это сделать? т.е. как например символы 6и7 из строки поместить в таблицу ID а символы с 10по 15 в таблицу STancia_a потом переместиться на следующую строку и проделать то же самое и так до конца файла. А подключить к ADOTable Access и отобразить в Grid я уже умею!!! если возможно приведите кусочек кода, где было бы понятна выборка, вставка в ADOTable и переход на следующую строку...

Последний раз редактировалось cw82; 21.04.2011 в 11:11.
cw82 вне форума Ответить с цитированием
Старый 22.04.2011, 09:18   #4
cw82
Пользователь
 
Аватар для cw82
 
Регистрация: 14.10.2010
Сообщений: 52
По умолчанию

неужели никто не поможет? Вопрос я так подозреваю не сложный для бывалых! Перерыл кой какую литературу и не смог найти ничего подходящего, да и по форумам полазил...
cw82 вне форума Ответить с цитированием
Старый 22.04.2011, 09:42   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

если честно, я не понимаю, что у Вас вызывает сложность?

Как из строки достать символы 6-7 ?! так:
Код:
sMyID := Copy(S,6,2);
если у Вас 3000 строк, то как в два символа (100 числовых значений) может вместиться 3000 уникальных ID ?!
может там надо доставать текст ID от первого до втрого пробела ?


Вызывает проблема, как вставить запись в таблицу?
Так ADOConnection + ADOQuery +
Код:
sql.Text := 'INSERT INTO Tablica values (:p1, :p2...)'; .ExecSQL;
легко решают эту проблему!

что не получается то?..
Serge_Bliznykov вне форума Ответить с цитированием
Старый 22.04.2011, 14:52   #6
cw82
Пользователь
 
Аватар для cw82
 
Регистрация: 14.10.2010
Сообщений: 52
По умолчанию

Заранее прошу не кидать помидорами, так ка я только начал изучать delphi, Попробую объяснить по подробнее.Есть текстовый файл (билинг АТС), в нем 3000 строк (буквы цыфры) нужно выбрать только нужные мне данные и вставить в ADOTable_Bill + Access.mdb.(моя версия). Исходные строки в тхт-
786911LOC-1000 KTC-Aktobe-c1 2 20110420235900LOC-1000
787010LOC-1000 EMG-Zhamansr-o1 4 20110420235904LOC-1000
Мне нужно чтобы символы под порядковым номером 6 и7 (в первой стр это 11 а в строке №2 это 10) были записаны в ADOTable_Bill.Fields(0) в строчку 0 и в строку 1 соответственно. Далее нужно чтобы в столбик ADOTable_Bill.Fields(1) были записаны символы от 15 до 31 в .txt это у нас KTC-Aktobe-c1 и EMG-Zhamansr-o1. Ну и потом я все это отображу в Гриде. Такая табл должна появиться...
Код | Абонент А |
отбоя | | | и тд… |и тд… |и тд…
11 |KTC-Aktobe-c1 | 2 |20110420 |235900 |
10 |EMG-Zhamansr-o1 |4 |20110420 |235904 |
cw82 вне форума Ответить с цитированием
Старый 22.04.2011, 15:58   #7
ReportCube
Форумчанин
 
Аватар для ReportCube
 
Регистрация: 11.03.2011
Сообщений: 426
По умолчанию

У Вас есть файл G:\MySource\mmm.tab
TADOConnection.ConnectionString='Pr ovider=Microsoft.Jet.OLEDB.4.0;Data Source=G:\MySource\;Extended Properties = "Text;HDR=No";Mode = Write|Read|Share Deny None;Persist Security Info = True;'

создаёте файл G:\MySource\schema.ini следующего содержания:
[mmm.tab]
ColNameHeader=False
Format=Delimited( )
MaxScanRows=25

Исполняте запрос, в полученными данными делаете всё, что нужно.
SELECT
Mid(a.[F1],5,2) AS F1,
a.[F2] AS F2,
a.[F3] AS F3,
Mid(a.[F4],1,8) AS F4,
Mid(a.[F4],9,6) AS F5
FROM
[mmm#tab] a
ReportCube вне форума Ответить с цитированием
Старый 25.04.2011, 09:30   #8
cw82
Пользователь
 
Аватар для cw82
 
Регистрация: 14.10.2010
Сообщений: 52
По умолчанию

Спасибо ReportCube, но если честно я почти ничего не понял... Поясните пожалуйста подробнее.
1. Что такое mmm.tab (что за файл??), какаято БД?
2. Если не трудно распишите запрос , SQL знаю поверхностно.
SELECT
Mid(a.[F1],5,2) AS F1,
a.[F2] AS F2,
a.[F3] AS F3,
Mid(a.[F4],1,8) AS F4,
Mid(a.[F4],9,6) AS F5
FROM
[mmm#tab] a
cw82 вне форума Ответить с цитированием
Старый 25.04.2011, 16:04   #9
ReportCube
Форумчанин
 
Аватар для ReportCube
 
Регистрация: 11.03.2011
Сообщений: 426
По умолчанию

Мне интересно: как я могу узнать наименование и путь доступа к Вашему текстовому файлу, если Вы пишите: "Есть текстовый файл (билинг АТС)". Соответственно замените указанный мной "G:\MySource\mmm.tab" на Ваш путь и Ваш файл. В SQL-запросе соответственно замените mmm#tab на имя Вашего файла (где вместо точки поставьте символ #). Честное слово, не понимаю? Если всё замените и откроете запрос, то получите практически полные данные в нужном Вам формате.
ReportCube вне форума Ответить с цитированием
Старый 25.04.2011, 16:07   #10
ReportCube
Форумчанин
 
Аватар для ReportCube
 
Регистрация: 11.03.2011
Сообщений: 426
По умолчанию

Извините: имя файла увидел! Соответственно замените mmm.tab на 11.txt и mmm#tab на 11#txt
ReportCube вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как скопировать текст с файла 1.txt и записать в 2.txt Kasper1 Общие вопросы по Java, Java SE, Kotlin 1 14.12.2010 05:56
Выборка из текстового файла JeyKip Общие вопросы C/C++ 0 12.05.2010 17:00
Выборка из файла zenner Microsoft Office Excel 2 30.09.2009 09:26
Выборка из txt в БД access Roman_RNP БД в Delphi 7 17.04.2009 20:07
Выборка из файла. StartMis Общие вопросы Delphi 15 12.02.2009 16:51