Извлечение данных из файла txt
|
|
foxjon | Дата: Четверг, 08 Ноября 2007, 13:45 | Сообщение # 1 |
Новый участник
Группа: Пользователи
Сообщений: 5
Репутация: 0
Награды: 0
Статус: Offline
| Всем доброго дня. Я только начал изучать данную программу и не совсем могу разобраться с некоторыми вопросами, примеры которые я просматривал мне не совсем понятны. Так же в уже существующих темах данного форума ничего не смог найти подходящего. Возможно мне окажут помощь мастера, которые освоили программу. Проблема заключается в следующем – Для вывода данных в окне программы по определенным строкам из текстового файла необходимо построить следующую структуру: Например Название - Nokia N70 Цвет – черный Антенна – встроенная Гарантия – 3 года Просмотреть – www.kjjlkj.ru Email – ghghg@mail.ru Количество моделей телефонов занесенных в текстовый файл не должно ограничивать возможности работы скрипта при выводе данных по ним. Названия телефонов желательно поместить в список, а при клике на определенную модель в заранее размеченные поля окна программы выводятся указанные характеристики и контактные данные На небольшом примере надеюсь освоить предоставленный урок и пользоваться им при дальнейшем изучении программы. Всем спасибо.
|
|
| |
as-master | Дата: Четверг, 08 Ноября 2007, 14:51 | Сообщение # 2 |
Разводящий
Группа: Модераторы
Сообщений: 2337
Репутация: 101
Награды: 5
Статус: Offline
| Тебе вполне подойдет пример "База данных" от WWS: http://www.mmbuilder.ru/files/base.zip Суть состоит в следующем. Структура текстового файла должна быть такой, что каждая строка файла представляет собой массив на только одну модель телефона, а в этом массиве все данные разделены делимитером, в качестве которого обычно используют знак решетки #. Пример строки файла: Nokia N70#черный#встроенная#3 года#www.kjjlkj.ru#ghghg@mail.ru# И так для всех моделей. Затем формируется список следующим скриптом (здесь list$ - это путь к текстовому файлу): Code For I=1 To NOL(list$) string$=StrFromFile(list$,I,1) model$[I]=GetArrayItem(string$,#,1) ListBoxAddItem("SongList","model$[I]") Next I Этот сценарий заполнит список SongList названиями моделей: Nokia N70 м т.д. Далее пишем скрипт, который будет запускаться по щелчку на пункте списка (здесь numitem - это номер пункта, по которому кликнули мышью): Code string$=StrFromFile(list$,numitem,1) model$=GetArrayItem(string$,#,1) color$=GetArrayItem(string$,#,2) antenna$=GetArrayItem(s tring$,#,3) garant$=GetArrayItem(string$,#,4) site$=GetArrayItem(string$,#,5) mail$=GetArrayItem(string$,#,6) Таким образом мы получаем все значения, относящиеся к данной модели. Осталось только вывести их в нужные поля. Всё Если ни шиша не понял, могу сделать пример. За рубль :)
Да пребудет с вами ММВ!
|
|
| |
as-master | Дата: Четверг, 08 Ноября 2007, 15:36 | Сообщение # 3 |
Разводящий
Группа: Модераторы
Сообщений: 2337
Репутация: 101
Награды: 5
Статус: Offline
| Собственно, вот и готовый пример. Среди прочего, заодно грузится и картинка модели данного телефона. Выложу потом пример на сайт, потому-что тема актуальна. Кстати, именно по такому принципу организована моя программулина My Cookery Book Проект сделан на ММВ497, можно запускать в режиме проверки по F5, потому-что файл базы и картинки сделаны внедренными файлами.
Да пребудет с вами ММВ!
|
|
| |
toizy | Дата: Четверг, 08 Ноября 2007, 16:49 | Сообщение # 4 |
Студийная субстанция
Группа: Администраторы
Сообщений: 2309
Репутация: 29
Награды: 12
Статус: Offline
| as-master, ты воистину реактивный!
Жизнь оказалась не такой уж и забавной, как поначалу...
|
|
| |
as-master | Дата: Четверг, 08 Ноября 2007, 17:15 | Сообщение # 5 |
Разводящий
Группа: Модераторы
Сообщений: 2337
Репутация: 101
Награды: 5
Статус: Offline
| Quote (toizy) as-master, ты воистину реактивный! Да блин у меня ж всё заранее было, готовые решения, в кулинарной книжке Только нашел несколько картинок телефонов - и всё. 15 минут работы.
Да пребудет с вами ММВ!
|
|
| |
Игорь | Дата: Пятница, 09 Ноября 2007, 07:23 | Сообщение # 6 |
Педагог
Группа: Проверенные
Сообщений: 331
Репутация: 0
Награды: 0
Статус: Offline
| Я вот посмотрел на все это... подумал... раза два... На кой наши студенты делали базу студентов в громоздком и дорогом Access (или как он там правильно пишется), который еще и не на всех машинах есть, а не, например, подобным образом... ну, хоть в Delfi, они его изучают... И дешевле, и запускается на любой машине, и дизайн можно какой угодно сварганить...
Шум ничего не доказывает. Курица, снесши яйцо, часто клохчет так, словно снесла небольшую планету... Марк Твен
|
|
| |
as-master | Дата: Пятница, 09 Ноября 2007, 09:52 | Сообщение # 7 |
Разводящий
Группа: Модераторы
Сообщений: 2337
Репутация: 101
Награды: 5
Статус: Offline
| Quote (Игорь) который еще и не на всех машинах есть Вот-вот, я его, этот Эксес, только вчера и установил, потому-что у меня не шла одна программа, и я подумал, что требуется поддержка его баз даных. Но... ни фига не помогло. Сегодня снесу его нафиг обратно. А заодно и Пауер Паинт снесу, так что и презентации у меня больше не будут поддерживаться Резюме: ММВ - форева!
Да пребудет с вами ММВ!
|
|
| |
Игорь | Дата: Пятница, 09 Ноября 2007, 09:59 | Сообщение # 8 |
Педагог
Группа: Проверенные
Сообщений: 331
Репутация: 0
Награды: 0
Статус: Offline
| Quote (as-master) А заодно и Пауер Паинт снесу Я подумываю... в свете грандиозных "борьб" с пиратством... на некоторые машины установить OpenOffice - абсолютно бесплатный, не такой громоздкий, поддерживает форматы Офиса... Что еще нужно для обычного ведения документации? Убейте меня валенком, не понимаю я, для чего наши студенты ставят еще порядочно сырой офис 2007, чтобы потом печатать в нем рефераты... Или я старею???
Шум ничего не доказывает. Курица, снесши яйцо, часто клохчет так, словно снесла небольшую планету... Марк Твен
|
|
| |
as-master | Дата: Пятница, 09 Ноября 2007, 10:06 | Сообщение # 9 |
Разводящий
Группа: Модераторы
Сообщений: 2337
Репутация: 101
Награды: 5
Статус: Offline
| Quote (Игорь) для чего наши студенты ставят еще порядочно сырой офис 2007 Сырой он или нет -сказать не могу, потому-что не юзал. А вот то, что установка полного комплекта даже Офиса-2003 сильно увеличивает количество ненужных файлов на системном диске, к которым никогда в жизни не обратишься, - это точно. И количество ключей реестра чуть не вдвое. При всем при том, что офис - крутейшая программа, всё же плата за это слишком дорогая (я имею в виду засорение системного диска всяким хламом). Могу только представить, КАК засоряет систему Офис-2007.
Да пребудет с вами ММВ!
|
|
| |
Игорь | Дата: Пятница, 09 Ноября 2007, 10:11 | Сообщение # 10 |
Педагог
Группа: Проверенные
Сообщений: 331
Репутация: 0
Награды: 0
Статус: Offline
| Quote (as-master) Могу только представить, КАК засоряет систему Офис-2007 И еще нужно учитывать, что файлы, созданные на нем, уже не открываются в более старых версиях
Шум ничего не доказывает. Курица, снесши яйцо, часто клохчет так, словно снесла небольшую планету... Марк Твен
|
|
| |
as-master | Дата: Пятница, 09 Ноября 2007, 10:31 | Сообщение # 11 |
Разводящий
Группа: Модераторы
Сообщений: 2337
Репутация: 101
Награды: 5
Статус: Offline
| Quote (Игорь) что файлы, созданные на нем, уже не открываются в более старых версиях Не, ну само собой, что надо выбирать Save As... Так, в теме, где про копирование файлов с CD, сейчас напишу. И самое главное: foxjon, дорогой ты наш автор вопроса данной темы! Помог ли тебе мой совет? А то развели мы тут флуд не по теме.
Да пребудет с вами ММВ!
|
|
| |
humanoid | Дата: Пятница, 09 Ноября 2007, 10:41 | Сообщение # 12 |
Гуманоид
Группа: Проверенные
Сообщений: 406
Репутация: 3
Награды: 1
Статус: Offline
| А как в этом примере реализовать возможность построчного редактирования контента...? Кстати для меня My Cookery Book - это как бы совершенно новая, на более высоком качестве концепция...в реализации возможностей ММВ... как бы мы подходим к более глубокому осмыслению скрытых возможностей и фич...
Hi, from Moon!
|
|
| |
as-master | Дата: Пятница, 09 Ноября 2007, 10:49 | Сообщение # 13 |
Разводящий
Группа: Модераторы
Сообщений: 2337
Репутация: 101
Награды: 5
Статус: Offline
| Quote (humanoid) А как в этом примере реализовать возможность построчного редактирования контента... В принципе ничего сложного, но автор вопроса данную задачу перед нами не ставил. Вопрос стоял только О ВЫВОДЕ ДАННЫХ, а не о вводе их. По сути, надо вместо текстовых объектов, куда выводятся данные, использовать эдитбоксы, затем собирать все данные в одну переменную-строку, вставляя между ними делимитер #, и затем готовую строку записывать в файл. Если новая запись - использовать команду StrToFile(list$,string$,TRUE,TRUE), а если редактирование имеющейся записи - то StrToLine(list$,string$,numitem,TRUE). Quote (humanoid) My Cookery Book - это как бы совершенно новая, на более высоком качестве концепция в реализации возможностей ММВ... Вот если у Алекса хватит терпения довести до ума плагин для работы с базами данных, то, как он обещает, ММВ будет просто летать на таких операциях :)
Да пребудет с вами ММВ!
|
|
| |
foxjon | Дата: Пятница, 09 Ноября 2007, 15:33 | Сообщение # 14 |
Новый участник
Группа: Пользователи
Сообщений: 5
Репутация: 0
Награды: 0
Статус: Offline
| Quote (as-master) И самое главное: foxjon, дорогой ты наш автор вопроса данной темы! Помог ли тебе мой совет? А то развели мы тут флуд не по теме. Да помогло, спасибо за помощь и поддержку, вопрос по сути своей элементарный но для не совсем шарящих и это иногда становится проблемой. Возможно неплохо было бы пару роков составить именно по таким пустяковым операциям, на сайт таких как я наверняка много заходит народу. Спасибо. Добавлено (09 Ноября 2007, 15:33) --------------------------------------------- Появился еще вопрос. В моем случае скрипт работает с базой данных, это понятно, а вот каким образом можно осуществить идею перехода по веб адресу и отправить письмо e-mail В моем примере это строки Просмотреть – www.kjjlkj.ru Email – ghghg@mail.ru
|
|
| |
humanoid | Дата: Пятница, 09 Ноября 2007, 16:19 | Сообщение # 15 |
Гуманоид
Группа: Проверенные
Сообщений: 406
Репутация: 3
Награды: 1
Статус: Offline
| Code В моем случае скрипт работает с базой данных, это понятно, а вот каким образом можно осуществить идею перехода по веб адресу и отправить письмо e-mail Года три назад я делал, что-то похожее, где линки сразу становились активными... проект назвался Personal Inscriber... Типа записной книжки... где-то должен на диске валяться... пока найдти не могу
Hi, from Moon!
|
|
| |
foxjon | Дата: Пятница, 09 Ноября 2007, 16:23 | Сообщение # 16 |
Новый участник
Группа: Пользователи
Сообщений: 5
Репутация: 0
Награды: 0
Статус: Offline
| Personal Inscriber вот здесь он лежит http://www.mmbuilder.ru/project_all.html щас гляну что внутри
|
|
| |
as-master | Дата: Пятница, 09 Ноября 2007, 16:26 | Сообщение # 17 |
Разводящий
Группа: Модераторы
Сообщений: 2337
Репутация: 101
Награды: 5
Статус: Offline
| Quote (foxjon) каким образом можно осуществить идею перехода по веб адресу и отправить письмо e-mail Если это простые текстовые объекты, то назначить на них действие Run() с переменной site$ или mail$. Вот тот же пример, чуть доработанный.
Да пребудет с вами ММВ!
|
|
| |
foxjon | Дата: Пятница, 09 Ноября 2007, 16:47 | Сообщение # 18 |
Новый участник
Группа: Пользователи
Сообщений: 5
Репутация: 0
Награды: 0
Статус: Offline
| там работает плагин, как применить данный вариант на свой пример я не знаю Добавлено (09 Ноября 2007, 16:47) --------------------------------------------- к сожалению моя прога версии 4.9.7 ваш пример phone.zip открыть мне не удалось
|
|
| |
as-master | Дата: Пятница, 09 Ноября 2007, 17:18 | Сообщение # 19 |
Разводящий
Группа: Модераторы
Сообщений: 2337
Репутация: 101
Награды: 5
Статус: Offline
| Quote (foxjon) к сожалению моя прога версии 4.9.7 ваш пример phone.zip открыть мне не удалось Прошу прощения, я-то уже не слежу за версиями... Вот в версии 497.
Да пребудет с вами ММВ!
|
|
| |
YURIY | Дата: Пятница, 09 Ноября 2007, 18:09 | Сообщение # 20 |
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
| Quote (Игорь) На кой наши студенты делали базу студентов в громоздком и дорогом Access (или как он там правильно пишется), который еще и не на всех машинах есть Для работы с базой Access не нужен сам Акцес. Все запросы выполняются программным методоми. У меня есть исходник на Basic, где программа работает с такой базой и работает без Access.
Вечная память Андрею Сергееву!
|
|
| |
as-master | Дата: Пятница, 09 Ноября 2007, 18:45 | Сообщение # 21 |
Разводящий
Группа: Модераторы
Сообщений: 2337
Репутация: 101
Награды: 5
Статус: Offline
| Quote (Yuriy) Для работы с базой Access не нужен сам Акцес Да, редкий случай для Майкрософт. Можно сказать, уникальный Еще бы их презентации в Power Point работали без самого Пауэр Паинта...
Да пребудет с вами ММВ!
|
|
| |
humanoid | Дата: Пятница, 09 Ноября 2007, 20:06 | Сообщение # 22 |
Гуманоид
Группа: Проверенные
Сообщений: 406
Репутация: 3
Награды: 1
Статус: Offline
| Quote Да, редкий случай для Майкрософт. Можно сказать, уникальный Еще бы их презентации в Power Point работали без самого Пауэр Паинта... А уменя есть где-то старинный модуль который запускает презентации ПоверПойнта... Поискать надо... я делал на MMB рантайм и запускал всю эту бадягу... в полный экран.. без установленного ПП Добавлено (09 Ноября 2007, 20:06) --------------------------------------------- Вот кому надо отдельный модуль для запуска PowerPoint презентаций... пользуйтесь (работает автономно... проверено) http://rapidshare.com/files/68551819/pptrun.zip.html ~3mb много вопросов не задавайте там и так все понятно... таже концепция вьюера (только не работает с плагинами эффектов от сторонних разработчиков) можно в Авторане прописать строку Ppview32.exe file.ppt и записать на диск... можно батник повесить... можно батник конвертнуть в Экзек... можно на ММВ сделать ЕХЕ рантайм... короч и так все ясно...
Hi, from Moon!
|
|
| |
foxjon | Дата: Суббота, 10 Ноября 2007, 13:02 | Сообщение # 23 |
Новый участник
Группа: Пользователи
Сообщений: 5
Репутация: 0
Награды: 0
Статус: Offline
| Попробовал предложенній вариант с переменніми Run("site$","") и Run("mail$","") mail$ по какой то причине не запускается, винда выдает ошибку, site$ работает нормально. Но опять появился вопрос, рассмотрим пример массива данных Nokia N70#черный#встроенная#3 года#www.kjjlkj.ru#ghghg@mail.ru#Стильный дизайн##www.tttttttt.ru#вес 170 гр#www.aaaaaa.ru# С переменно Run("site$","") будет запускаться только тот адрес что стоит первым в массиве данных даже при клике на других www адресах которые видны так же как ссылки, в моем случае это будет только www.kjjlkj.ru Вопрос состоит в следующем как правильно разделить www адреса, чтобы каждый работал как отдельная ссылка.
|
|
| |
toizy | Дата: Суббота, 10 Ноября 2007, 16:12 | Сообщение # 24 |
Студийная субстанция
Группа: Администраторы
Сообщений: 2309
Репутация: 29
Награды: 12
Статус: Offline
| Quote (foxjon) mail$ по какой то причине не запускается Мож она должна содержать mailto: в начале?
Жизнь оказалась не такой уж и забавной, как поначалу...
|
|
| |
Alex3A | Дата: Воскресенье, 11 Ноября 2007, 00:31 | Сообщение # 25 |
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
| Quote Вот если у Алекса хватит терпения довести до ума плагин для работы с базами данных, В процессе, дбф поддерживает строки длиной 255 символой, что для твоей книги маловато, леплю свою добавку, под твою базу, сделаю - выложу
|
|
| |
aparart | Дата: Понедельник, 17 Марта 2008, 08:40 | Сообщение # 26 |
Новый участник
Группа: Пользователи
Сообщений: 4
Репутация: 0
Награды: 0
Статус: Offline
| Почитал эту тему, попробовал сделать как сдесь написано так как надо чтоб даные сохранились, сохранить в файл кое как получилось, а вот загрузить нет и в самом файле сохраняются все данные подряд и за прошлый и за этот запуск, так что он по идеи мог бы сильно разростись если много данных, извиняюсь если вопрос уже был но ничего по этому кроме этой темы ничего не нашел, так как сохранить например инфу из эдит боксов и чтоб они заргурзились с помощью обзора, если не сложно напишите более подробно.
|
|
| |
as-master | Дата: Понедельник, 17 Марта 2008, 11:01 | Сообщение # 27 |
Разводящий
Группа: Модераторы
Сообщений: 2337
Репутация: 101
Награды: 5
Статус: Offline
| Вопрос ты задал слишком сумбурно. Нельзя ли было понятнее, подробнее объяснить проблему? Я смог только понять, что тебе нужно очищать файл перед сохранением в него новой записи. Ну так с этим проблем-то нет!
Да пребудет с вами ММВ!
|
|
| |
Alex3A | Дата: Понедельник, 17 Марта 2008, 11:26 | Сообщение # 28 |
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
| Quote (as-master) Вот если у Алекса хватит терпения довести до ума плагин для работы с базами данных, то, как он обещает, ММВ будет просто летать на таких операциях Плагин давно готов, и лежит уже давно, даже "завонялся!"
|
|
| |
aparart | Дата: Понедельник, 17 Марта 2008, 23:37 | Сообщение # 29 |
Новый участник
Группа: Пользователи
Сообщений: 4
Репутация: 0
Награды: 0
Статус: Offline
| as-master, Как сохранить данные из эдитбоксов в текстовый файл, как очищать файл перед сохранением в него новой записи, как загружаются потом данные из тексового файла, вроде понятнее буду благодарен за ответ
|
|
| |
Rush | Дата: Вторник, 18 Марта 2008, 13:47 | Сообщение # 30 |
Обозреватель-консультант
Группа: Проверенные
Сообщений: 216
Репутация: 10
Награды: 1
Статус: Offline
| Quote (aparart) Как сохранить данные из эдитбоксов в текстовый файл Допустим, переменная эдитбокса называется EditBox$ (такова она по умолчанию). Пишется в файл она таким образом: Code rv=StrToFile(filename$,EdiBox$,append,linefeed) где filename$ - имя файла, куда ты хочешь записать. append - добавлять или нет запись в конец файла. Если поставить 0 или FALSE, файл перепишется заново, если 1 или TRUE - добавится к существующему. Соответственно, linefeed - добавлять или нет запись с новой строки (синтаксис аналогичен предыдущему). Это и ответ на вопрос как очистить файл перед сохранением новой записи. Quote (aparart) как загружаются потом данные из тексового файла Загрузка из файла: Code text$=StrFromFile(filename$,fromline,numberoflines) где fromline - номер строки, с которой начинается чтение из файла. numberoflines - к-во строк, которые нужно считывать. Если нужно прочитать весь файл, то fromline=1, а numberoflines=-1. Все это прекрасно описано в справке. Причем на русском. Надо только не лениться и читать. Ну и осмысливать, конечно, желательно...
Сообщение отредактировал Rush - Вторник, 18 Марта 2008, 13:52 |
|
| |