Добро пожаловать к нам в гости! Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
У меня не получается таким образом. Помогите пожалуйста решить данную проблему. Я пробовал с командой SearchStr. Но данная команда находит только лишь имя,а остальные не находит. Заранее благодарен за отзывы. :mda:
Developer, для разделения строки на элементы (по разделителю) вам следует воспользоваться командой StrParse. В вашем случае это может выглядеть, например, так (если в файле много строк):
Если же строка всего одна, то достаточно просто команды StrParse.
А вообще, если вы планируете активно работать с большими объемами "персональных" данных и т.п. вместо текстовых файлов лучше применить плагин NeoBookDB для работы с базамии данных. - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Иначе [String1] может быть истино, а 2 или 3 ложно. Тогда если [image_path_key] это отображение рисунка, то он будет мигать.
Или если [String1] = Иван Иванов, то последующие команды совершенно не к чему. Так как верно условие, или не верно, [image_path_key] все равно будет ok.gif Не хочешь читать хелп?
Ну ни себе фига! mishem, а я думал, что ты плагин предложишь использовать.
Если ему надо выполнение всех трех условий, то можно и минимизировать... - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Эх, мелькнул было лучик надежды, мол исправляешься, да угас быстро...
Даже боюсь спрашивать в какой теме....
Или у тебя квота на предложения плагинов?
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
В вашем случае это может выглядеть, например, так (если в файле много строк):
Peter, а в [String1] и в [String2] откуда могут быть значение если ничего не задано или эти переменные глобальные? я не понимаю и думал что для каждой переменной надо парсить чтобы получить значение!?
Quote (mishem)
Иначе [String1] может быть истино, а 2 или 3 ложно.
Quote (mishem)
Или если [String1] = Иван Иванов, то последующие команды совершенно не к чему. Так как верно условие, или не верно, [image_path_key] все равно будет ok.gif
Вот поэтому чтобы узнать всё досканально,я каждую отдельно проверяю. Если в одном будет истина а в других лож,то будет не то что я хотел сделать. Поэтому нужно имя и дату отдельно проверять.
Quote (Peter)
плагин NeoBookDB
Peter, Данные качаются с сайта в темп и потом проверяются. Идея с плагином конечно отличная,но к сожалению не работал с базами данных. Можно попробовать.
Добавлено (18 Марта 2012, 14:03) --------------------------------------------- а ещё вопрос. Интересует безопасность данных. Созданные плагином NeoBookDB базы данных открываются ли на других приложениях кроме самом нб? можно ли защищать базы данных или скрывать?
Peter, а в [String1] и в [String2] откуда могут быть значение если ничего не задано или эти переменные глобальные? я не понимаю и думал что для каждой переменной надо парсить чтобы получить значение!?
Developer, вам надо просто открыть справку по программе и изучить что такое StrParse и с чем его едят. Если английская справка непонятна, то есть русский перевод, к сожалению, не самой последней версии, но вполне достаточно.
Quote (Developer)
можно ли защищать базы данных или скрывать?
Да, базы данных можно запаролить (правда, не все поля, но текстовую информацию можно). Более подробно смотрите в справке к плагину.
Для начала работы с NeoBookDB достаточно изучить те примеры, которые прилагаются к плагину. К тому же, для этого плагина тоже есть русский вариант справки (на нашей страничке плагина). - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
вам надо просто открыть справку по программе и изучить что такое StrParse
Я теперь понял принцип работы. Не обращал внимание на то что у вас есть на форуме русский перевод. PS в новой версии есть новые команды,а в справочнике нету пояснений этих команд. Я думаю это большой минус. Можно ли надеется на то, что на вашем форуме будет полной версии справочник?
Quote (Peter)
Для начала работы с NeoBookDB достаточно изучить те примеры, которые прилагаются к плагину. К тому же, для этого плагина тоже есть русский вариант справки (на нашей страничке плагина).
Благодарен за информацию
Добавлено (19 Марта 2012, 14:46) --------------------------------------------- Не понимаю.. Всё делаю правильно но увы не получается.
Я постараюсь полностью описать принцип работы программы. Программу пишу для нашего офиса. У каждого работника будет своя анкета в программе и чтобы в эту анкету получить доступ я разрабатываю авторизацию пользователей перед входом в программу. Каждый работник имеет свой ключ и авторизуется при вводе ключа,своего имени и дату подключения. Файл хранится на сайте и при авторизации он качается в темп и оттуда программа должна считывать файл и распознать данные для авторизации. Содержимое файла:
Quote
5555-sger-qwer-ster-cvvv-1223|Иван Иванов|17.03.2012 5555-sger-qwer-ster-cvvv-1513|Робот|11.11.11 5555-sger-qwer-ster-cvvv-1103|Директор|1.01.2012 5555-sger-qwer-ster-cvvv-1111|бухгалтер|13.02.2011 5555-sger-qwer-ster-cvvv-1145|Люди в черном|15.03.2012
Написал такой код:
DownloadFile "http://site/Keys/keys.txt" "[TempDir]\keys_bvk" "HideProgress" .Ищем введенные данные
Во первых, качать файл и засорять temp не нужно, можно сразу получить содержимое в переменную. InternetGet"http://site/Keys/keys.txt""[result]""HideProgress+Async" Во вторых не совсем понятно, вам нужно разложить на атомы все содержимое файла, или только нужную строку (вряд ли при авторизации конкретного юзера нужно разбирать данные всех юзеров), в этом случае каким образом происходит идентификация строки (по имени?). Если нужны все данные, как предполагается их разложить по переменным чтобы было понятно чьи это данные?. Разложите вначале даже для себя логику работы программы полностью, и тут же решение станет очевидным. Как задавать вопросы
Если нужны все данные, как предполагается их разложить по переменным чтобы было понятно чьи это данные?
была идея писать данные в файле таким образом: пример:
[key]=ключ [name]=имя [data]=время Но ключей же для авторизации много и данные разные для каждого пользователя. Поэтому разложить данные на отдельные переменные это слишком долго.
Пользователей будет намного больше и для того чтобы облегчить себе работу я в файле написал для каждого пользователя на отдельной строке. У меня опыта мало в небуке поэтому не знаю пока каким ещё образом можно хранить данные и так же их считывать чтобы правильно авторизовать пользователя. :mda:
не понял зачем дату вводить, но вот получилось так. этого более чем достаточно чтобы разобраться.
Добавлено (19 Марта 2012, 16:00) --------------------------------------------- ну думаю вы поняли что не нужно хранить ключи в файле в открытом виде (если вы их уже не шифранули), ведь доступ к файлу можно получить перейдя по ссылке к нему. Храните в файле хэши ключей. При вводе ключа вычисляйте его хэш и сравнивайте хэши между собой, если совпадают они значит и пароль верный. Получить ключ из хеша нельзя, ввести его вместо пароля тоже. Так что если их и заполучат толку не будет от них. для хэширования строк есть плагин (zmFunctions->zmGetStringHash).
IfEx "[image_path_key]=ok.gif and [image_path_name]=ok.gif and [image_path_data]=ok.gif" AlertBox "Успешно" "Данные введены верно" ExitLoop EndIf
DeleteArray "[String]" "All" EndLoop
IfEx "[image_path_key]<>ok.gif or [image_path_name]<>ok.gif or [image_path_data]<>ok.gif" AlertBox "Ошибка" "Данные введены не верно" ExitLoop EndIf
--------------------------------------------- А вообще я б записал примерно так
Code
FileLen "[TempDir]keys" "[all]" Loop "1" "[all]" "[result]" FileRead "[TempDir]keys" "[result]" "[FileLine]" StrParse "[FileLine]" "|" "[String]" "" IfEx "[String1]=[key] and [String2]=[name] and [String3]=[data]" SetVar "[image_path_key]" "ok.gif" SetVar "[image_path_name]" "ok.gif" SetVar "[image_path_data]" "ok.gif" AlertBox "Ok" "Вход выполнен успешно, ну это и так будет видно по ok.gif" ExitLoop Else SetVar "[image_path_key]" "error.png" SetVar "[image_path_name]" "error.png" SetVar "[image_path_data]" "error.png" EndIf DeleteArray "[String]" "All" EndLoop
--------------------------------------------- Developer, пользуйтесь Отладчиком. Очень удобно отслеживать последовательность действий и нахождение ошибок.
правильно, потому что продолжение цикла забивает найденные результаты следующими данными.
по сути, всё "программирование" в neobook сводится к правильному использованию двух операций - условий и циклов, никаких магических команд тут нет. Нужна только логика. А последнее время люди берутся что-то состряпать по быстрому, даже в голове не представляя полной картины алгоритма работы, авось и так заработает. Либо бьются на одном месте не понимая что нужно менять алгоритм всей работы. Я лично берусь за программирование сперва на столе с бумагой и ручкой за составлением блок-схемы, чего и всем рекомендую. Как задавать вопросы
Этим кодом я так понимаю вы хотите вставлять картинки напротив полей. Визуально показывать ошибочный ввод.
Но представьте что у вас 1000 записей.... Эти картинки будут беспорядочно мигать, если какие то данные будут совпадать. Например имя.
Вторая поправка, Дембель правильно указал, что не стоит перебирать весь список. К примеру каждому можно назначить свой ID который записывать в самом начале. И после сначала производить поиск по ID, а уже после парсить строку и проверять правильност введенных данных.
В этом случае уже можно будет подставлять картинки.
сперва на столе с бумагой и ручкой за составлением блок-схемы
Точь-в-точь Штирлиц!
Quote (Developer)
Пользователей будет намного больше
Quote (Developer)
поэтому не знаю пока каким ещё образом можно хранить данные и так же их считывать
Quote (Developer)
чтобы облегчить себе работу
... нужно использовать базы данных и подключить в работу плагин NeoBookDB. Это - единственно верный путь, особенно, если пользователей будет много. Я уж говорил об этом. - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Это - единственно верный путь, особенно, если пользователей будет много.
Если пользователей будет до 1000(хотя я сомневаюсь что столько будет), и кроме как регистрации не нужно больше хранить никакие данные в базе, то считаю что не целесообразно подключать плагин. Если только для общего развития.
Нужно пересмотреть код регистрации.
Quote (Developer)
5555-sger-qwer-ster-cvvv-1145|Люди в черном|15.03.2012
Пока не понятно зачем нужна строка 5555-sger-qwer-ster-cvvv-1145?
Можно сделать примерно так. День рождения все всегда свой знают, это будет вместо ID. Пишем:
День рождения|Логин|Пароль
Загружаем из файла данные в список. Ищем день рождения и получаем всю строку. Парсим на предмет логина и пароля. Сверяем. Все.
Можно без списка, но подклчить плагин hpwControl, который все равно как я понял из других постов понадобится.
С помощью этого плагина находим № строки в которой совпалоа дата рождения, ну а дальше все тоже самое.
Добавлено (19 Марта 2012, 23:14) ---------------------------------------------
Quote (Developer)
Mmbuilder > Neobook > Delphi > C++
Тогда скорей всего так Mmbuilder > Neobook > C++ > Delphi
Ну ни себе фига! Во второй раз! mishem, с тобой все впорядке?
При работе с массивами однотипных данных "базы" будут многократно эффективнее текстовых файлов! Это - аксиома, и спорить с этим попросту бессмысленно. Базы данных именно для того и были придуманы. Использование баз данных позволяет гибко осуществлять поиск (выборку информации) по разным критериям, а также по их комплексу. И ко всему прочему поиск по базам данных многократно быстрее.
Другое дело - насколько необходимо использовать базы? Если пользователей всего десяток-другой, и критериев пара-тройка штук, то можно обойтись и текстовыми файлами. Можно конечно, организовать базы и в виде текстовых файлов, и примеры тому есть (в частности "Кулинарная книга" ас-мастера), но это потребует немалого мастерства в организации таких "баз", и методов их использования, но, в любом случае, по эффективности проиграет обычным базам.
Quote (mishem)
но подклчить плагин hpwControl
Афигеть! Одному плагину "дать отставку", но при этом предложить другой! Нет слов...
Quote (mishem)
Тогда скорей всего так Mmbuilder > Neobook > C++ > Delphi
Правильнее так: MMB -> NeoBook -> Delphi. Зная Delphi, С++ нафиг не нужен! Если только "для общего развития"...
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Одному плагину "дать отставку", но при этом предложить другой!
Честное слово, иногда с тобой спорить не хочется. Спор рождает истину, а здесь из пустого в порожнее...
Quote (Peter)
Другое дело - насколько необходимо использовать базы?
Именно об этом я и говорю. Смысл громоздить базу, ессли будет максимум строк 50. Я не против плагина, я против необоснованного использования плагина. В данном случае от этого только вред.
Quote (Peter)
Quote
но подклчить плагин hpwControl
Афигеть!
Я ж написал...
Quote (mishem)
который все равно как я понял из других постов понадобится.
mishem, кто совсем недавно "с пеной у рта" отстаивал идею применения плагина там, где можно было обойтись 3-4 строками кода NB, причем с тем же самым эффектом?
Quote (mishem)
Смысл громоздить базу, ессли будет максимум строк 50.
Quote (Developer)
Пользователей будет намного больше
Откуда появилась цифра в 50 строк?
Quote (mishem)
который все равно как я понял из других постов понадобится.
Из того, что имеется в этой теме не следует, что оный плагин понадобится.
Quote (mishem)
В данном случае от этого только вред.
Это почему же?
Короче - см. начало моего поста.
Совет: в диспуте частенько бывает полезным помнить о том, что постил ранее.
Предвидя ответную реакцию, повторю:
Quote (Peter)
Можно конечно, организовать базы и в виде текстовых файлов, и примеры тому есть (в частности "Кулинарная книга" ас-мастера), но это потребует немалого мастерства в организации таких "баз", и методов их использования,
И вообще, автор сабжа должен сам понимать и представлять, что именно ему требуется, и после этого выбирать нужные пути реализации. Если он посчитает, что сможет (и лучше) обойтись текстовыми файлами, то значит так и надо поступить. - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
А вот в данном случае получается пока так, что автору придеться городить городульки.
Quote (mishem)
От огического мышления.
Если честно, я до сих пор, перечитав не раз тему, так и не могу понять - что же и как именно должно работать в сабжевой программе.
Quote (mishem)
Потому что используя плагин БД и изучая его, проект будет закончен не скоро.
А быстро только кошки родят.
Чего-то не похоже на то, что автор пребывает в цейтноте...
Во-первых, изучение этого плагина займет не больше времени, чем создание "городулек". Вопрос дискутируется уже три дня, этого времени вполне достаточно для изучения плагина, хотя бы в основах. Во-вторых, знание этого плагина и умение с ним работать, может очень пригодиться в будущем.
Quote (Peter)
А вообще, если вы планируете активно работать с большими объемами "персональных" данных и т.п. вместо текстовых файлов лучше применить плагин
Это было всего-лишь напоминание о возможном пути решения подобных задач, если можно так сказать, в стратегическом плане.
Quote (Peter)
автор сабжа должен сам понимать и представлять, что именно ему требуется, и после этого выбирать нужные пути реализации. Если он посчитает, что сможет (и лучше) обойтись текстовыми файлами, то значит так и надо поступить.
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Если честно, я до сих пор, перечитав не раз тему, так и не могу понять - что же и как именно должно работать в сабжевой программе.
Quote (Developer)
Программу пишу для нашего офиса. У каждого работника будет своя анкета в программе и чтобы в эту анкету получить доступ я разрабатываю авторизацию пользователей перед входом в программу. Каждый работник имеет свой ключ и авторизуется при вводе ключа,своего имени и дату подключения. Файл хранится на сайте и при авторизации он качается в темп и оттуда программа должна считывать файл и распознать данные для авторизации.
У каждого работника будет своя анкета в программе и чтобы в эту анкету получить доступ я разрабатываю авторизацию пользователей перед входом в программу. Каждый работник имеет свой ключ и авторизуется при вводе ключа,своего имени и дату подключения. Файл хранится на сайте и при авторизации он качается в темп и оттуда программа должна считывать файл и распознать данные для авторизации.
К сожалению,этого совершенно недостаточно для того, чтобы понять "что за программа, и для чего она нужна". Почему файл хранится где-то сайте (на каком-таком сайте непонятно) в то время, как обычно подобные ключи храняться на каждом персональном компьютере (или флэшке), почему он должен скачиваться, получается, каждый раз при авторизации, когда можно заложить (через базу данных) ключи в саму программу, и, в случае необходимости, их редакторовать, и т.д. и т.п. Вот от понимания всех этих "тонкостей" и можно оттаклкиваться при выборе стратегии.
Quote (mishem)
от базы данных ему не уйти.
Рано или поздно. Безусловно.
Ведь ни одна программа не стоИт на месте.
Так-вот и надо "заслушать начальника транспортного цеха"...
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться