да, в файлах, в данном случае в txt. А как сделать в виде ini, если текста у меня не так мало будет и его структура как выше написанная. Или можно как то полегче?? Примерчику буду рад
Вопросы новичка
Сообщений 301 страница 330 из 1000
Поделиться30221.04.2010 09:49:03
А как сделать в виде ini
If CreatePreferences("C:\Dannie.xxxx");создаём файл Dannie.xxxx на диске С (расширение может быть любым) PreferenceGroup("термин1");записываем данные для термина1 WritePreferenceString("содержание", "БлаБлаБла") WritePreferenceString("описание", "БлуБлуБлу") PreferenceGroup("термин2");записываем данные для термина2 WritePreferenceString("содержание", "ХряХряХря") WritePreferenceString("описание", "ХруХруХру") PreferenceComment("Коментарий одной части") PreferenceGroup("термин3");записываем данные для термина3 WritePreferenceString("содержание", "МдаМдаМда") WritePreferenceString("описание", "ГнуГнуГну") PreferenceGroup("термин4");записываем данные для термина4 WritePreferenceString("содержание", "И Т.Д...") WritePreferenceString("описание", "И Т.Д...") PreferenceComment("Коментарий другой части ") PreferenceGroup("термин5");записываем данные для термина5 WritePreferenceString("содержание", "И Т.Д...") WritePreferenceString("описание", "И Т.Д...") ClosePreferences();закрываем файл EndIf OpenPreferences("C:\Dannie.xxxx");открываем наш файл PreferenceGroup("термин4");читаем данные для термина4 Debug ReadPreferenceString("содержание", "Значение по умолчанию, если нет записи или preference файл не был открыт") Debug ReadPreferenceString("описание", "Значение по умолчанию, если нет записи или preference файл не был открыт") PreferenceGroup("термин5");читаем данные для термина5 Debug ReadPreferenceString("содержание", "Значение по умолчанию, если нет записи или preference файл не был открыт") Debug ReadPreferenceString("описание", "Значение по умолчанию, если нет записи или preference файл не был открыт") PreferenceGroup("термин1");читаем данные для термина1 Debug ReadPreferenceString("содержание", "Значение по умолчанию, если нет записи или preference файл не был открыт") Debug ReadPreferenceString("описание", "Значение по умолчанию, если нет записи или preference файл не был открыт") PreferenceGroup("термин3");читаем данные для термина3 Debug ReadPreferenceString("содержание", "Значение по умолчанию, если нет записи или preference файл не был открыт") Debug ReadPreferenceString("описание", "Значение по умолчанию, если нет записи или preference файл не был открыт") PreferenceGroup("термин2");читаем данные для термина2 Debug ReadPreferenceString("содержание", "Значение по умолчанию, если нет записи или preference файл не был открыт") Debug ReadPreferenceString("описание", "Значение по умолчанию, если нет записи или preference файл не был открыт") PreferenceGroup("термин N икс");читаем данные для термина икс Debug ReadPreferenceString("содержание", "Содержание по умолчанию, если нет записи или preference файл не был открыт") Debug ReadPreferenceString("описание", "Описание по умолчанию, если нет записи или preference файл не был открыт") ClosePreferences();закрываем файл
Поделиться30321.04.2010 19:01:33
Спасибо, на самом деле так легче.
Поделиться30421.04.2010 20:27:10
Тестирую данный способ и возник противный недочет. Вот текст файла:
[растяжение мышцы] описание = растяжение мышцы очень негативный фактор, который плохо сказывается на здоровье лечение = при растяжении мышцм рекоминдуется смазать данное место [разрыв мышцы] описание = при разрыве мышци очень больно лечение = разрыв мышцы лечится хирургическим вмешательством
Вот код программы:
Procedure openprefer() OpenPreferences("\muscul_data.mf") PreferenceGroup("растяжение мышцы") Debug ReadPreferenceString("описание", "невозможно найти описание") Debug ReadPreferenceString("лечение", "невозможно найти описание") ClosePreferences() EndProcedure openprefer()
Вопрос: почему в отладчике пишет "невозможно найти описание", если я вроде все правильно сделал. PS: файл создал вручную на основе выше написанного пример, только заменив на свое
Поделиться30521.04.2010 21:36:58
Вопрос: почему в отладчике пишет "невозможно найти описание", если я вроде все правильно сделал.
У меня работает!
Точно путь к файлу правильный?
Поделиться30621.04.2010 21:39:44
Точно путь к файлу правильный?
Вот я не внимательный. Нужно было так:
"data\muscul_data.mf"
Отредактировано daiomik (21.04.2010 21:40:50)
Поделиться30721.04.2010 21:51:33
Почему в этой процедуре происходит ошибка:
Procedure openprefer() zap.s=GetGadgetState(#Listview_4) OpenPreferences("data\muscul_data.mf") PreferenceGroup(zap) opisanie.s=ReadPreferenceString("описание", "невозможно найти описание") lechenie.s=ReadPreferenceString("лечение", "невозможно найти описание") SetGadgetText(#Editor_3,opisanie) SetGadgetText(#Editor_4,lechenie) ClosePreferences() EndProcedure
Поделиться30821.04.2010 21:59:08
zap.s=GetGadgetState(#Listview_4)
Попытка записи числа в строковую переменную!
Наверное нужно что-то типа этого.
Попробуй zap.s=GetGadgetText(#Listview_4)
Да и в программе стоит проверять открыт ли файл muscul_data.mf, если нет, то сообщать юзеру об этом.
Procedure openprefer() If OpenPreferences("data\muscul_data.mf") PreferenceGroup(GetGadgetText(#Listview_4)) SetGadgetText(#Editor_3,ReadPreferenceString("описание", "невозможно найти описание")) SetGadgetText(#Editor_4,ReadPreferenceString("лечение", "невозможно найти описание")) ClosePreferences() Else MessageRequester("Ошибка", "Нет файла "+Chr(34)+"muscul_data.mf"+Chr(34), #MB_OK|#MB_ICONERROR) EndIf EndProcedure
Поделиться30921.04.2010 23:11:05
Спасибо, все получилось. Данная структура намного легче.
Поделиться31021.04.2010 23:32:52
Как добиться такого эффекта, когда при добавлении текста в EditorGadget он добавлялся не одной строчкой, как у меня, а текстом, то есть что бы текст автоматически переносился. Для добавления текста я использую SetGadgetText
Поделиться31122.04.2010 00:40:20
Нужен перенос по словам?
Вот пример
If OpenWindow(0, 0, 0, 322, 150, "EditorGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) EditorGadget(0, 8, 8, 306, 133) SendMessage_(GadgetID(0),#EM_SETTARGETDEVICE, #Null, 0) Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow EndIf
Поделиться31222.04.2010 18:12:15
Спасибо, то что нужно
Поделиться31322.04.2010 20:47:36
Подскажите как создать подсказки в Статус-е бар при наведении на любой гаджет или пункт меню
Поделиться31422.04.2010 21:00:54
С гаджетами можно поступить примерно как здесь Создатель программ
Пример подсказок для меню
#Window = 1 #MenuFocus = 287 #Menu = 1 Enumeration 100 #Menu1 #Menu2 #Menu3 #Menu4 #Menu5 #Menu6 #StatusBar EndEnumeration Procedure LoWord (var) ProcedureReturn var & $FFFF EndProcedure Procedure MyWindowCallback(WindowID, Message, wParam, lParam) Result = #PB_ProcessPureBasicEvents wParamLo = LoWord (wParam) lParamLo = LoWord (lParam) If Message = #MenuFocus If wParamLo = 0 ;File Title StatusBarText(#StatusBar, 0, "File Title: Help Text") ElseIf wParamLo = #Menu1 StatusBarText(#StatusBar, 0, "File 1: Help Text") ElseIf wParamLo = #Menu2 StatusBarText(#StatusBar, 0, "File 2: A Much Longer Help Text") ElseIf wParamLo = #Menu3 StatusBarText(#StatusBar, 0, "File 3: This Is The Longest Help Text. Believe Me!") ElseIf wParamLo = 1 ;Edit Title StatusBarText(#StatusBar, 0, "Edit Title: Help Text") ElseIf wParamLo = #Menu4 StatusBarText(#StatusBar, 0, "Edit 1: Help Text") ElseIf wParamLo = #Menu5 StatusBarText(#StatusBar, 0, "Edit 2: A Much Longer Help Text") ElseIf wParamLo = #Menu6 StatusBarText(#StatusBar, 0, "Edit 3: This Is The Longest Help Text. Believe Me!") EndIf ElseIf Message = 32 If lParamLo = 5 ; menu StatusBarText(#StatusBar, 0, "You are over the menu") ElseIf lParamLo = 1 ; client area ; you need this to cancel the text StatusBarText(#StatusBar, 0, "") EndIf EndIf ProcedureReturn Result EndProcedure If OpenWindow(#Window,0,0,320,240,"Menu Help Text In Statusbar",#PB_Window_SystemMenu|#PB_Window_ScreenCentered) CreateMenu(#Menu,WindowID(#Window)) MenuTitle("File") MenuItem(#Menu1,"File 1") MenuItem(#Menu2,"File 2") MenuItem(#Menu3,"File 3") MenuTitle("Edit") MenuItem(#Menu4,"Edit 1") MenuItem(#Menu5,"Edit 2") MenuItem(#Menu6,"Edit 3") CreateStatusBar(#StatusBar, WindowID(#Window)) AddStatusBarField(320) SetWindowCallback(@MyWindowCallback()) Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow EndIf
Поделиться31522.04.2010 21:21:20
С гаджетами можно поступить примерно как здесь Создатель программ. Пример подсказок для меню
Спасибо.
У меня какой то баг с тул баром. Создаю его этим кодом:
CreateToolBar(0, WindowID(#Window_0)) ToolBarStandardButton(0, #PB_ToolBarIcon_New) ToolBarStandardButton(1, #PB_ToolBarIcon_Open) ToolBarStandardButton(2, #PB_ToolBarIcon_Save)
в итоге получается частично закрашенная область. Почему так, что это может быть. И + к этому вопросу, возможно ли снизу этот тул бар ограничить линией, типа как сверху с меню:
PS: с тем, как ограничить тул бар разобрался. Нарисовать линию. А предыдущий вопрос, про то что на скрине так и не пойму
PSS: создал другой проект и тул бар - все работает отлично, а в моем такая фигня. Может как то перебивание и сбивание идет, путем наложения, я уже и константу имени тул бара поменял, все также
Отредактировано daiomik (22.04.2010 23:22:32)
Поделиться31623.04.2010 00:06:31
На скрине ничего "плохого" не видно - всё одново цвета.
Можно посмотреть скрин формата PNG без перекодировки в JPG?
Поделиться31723.04.2010 00:07:50
Только что разобрался в проблеме. Оказывается вышенаписанный код надо было поставить в конце процедуры. Видимо какой то сбой происходил.
Поделиться31823.04.2010 00:31:05
Не могу понять проблему, возникающую у меня с окнами. При закрытии побочных окон программы, главное окно у меня почему то обновляется и вся инфа, которая было раньше стирается, + к этому на панели задач происходит как бы обновление окна (то есть оно как будто быстро закрывается и сразу открывается). Вот действия закрытия побочных окон. Правильно ли они написаны и вообще что это может быть:
If window=#Window_2 If Event = #PB_Event_CloseWindow CloseWindow(#Window_2) EndIf ElseIf window=#Window_1 If Event = #PB_Event_CloseWindow CloseWindow(#Window_1) EndIf EndIf
Поделиться31923.04.2010 00:59:09
Правильно ли они написаны и вообще что это может быть
Написанны правильно.
Нужно на весь код посмотреть.
Так сказать сложно, судя по всему, главное окно повторно создаётся.
Поделиться32023.04.2010 07:03:46
Да, Петр, ты был прав. За место того, что бы написать
Until event=#PB_Event_CloseWindow And window=#Window_0
, я писал:
Until event=#PB_Event_CloseWindow And window=Open_Window_0()
Поделиться32123.04.2010 15:40:33
Не могу разобраться с появлением фрейма. Только он один при запуске окна не появляется. Как мне кажется это происходит наверно из-за какогото конфликта с тул баром, так как перед этим все было ок. Вот код процедуры главного окна:
Procedure Open_Window_0() If OpenWindow(#Window_0, 127, 72, 765, 593, "Мед Фактор1.5 Alpha", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered ) If CreateMenu(#MenuBar_0, WindowID(#Window_0)) MenuTitle("Файл") MenuItem(#MENU_28, "Настройки") MenuBar() MenuItem(#MENU_1, "Выход") MenuTitle("Работа с телом") MenuItem(#MENU_4, "Иллюстрации частей тела") MenuItem(#MENU_13, "Лекарства") MenuTitle("Помощь") MenuItem(#MENU_8, "Справка") MenuBar() MenuItem(#MENU_22, "Сайт программы") MenuItem(#MENU_23, "Обновление") MenuBar() MenuItem(#MENU_9, "О программе") EndIf CreateStatusBar(#StatusBar_1, WindowID(#Window_0)) LoadImage(0,"body.jpg") ImageGadget(#Image_16, 15, 65, 172, 448,ImageID(0)) TextGadget(#Text_4, 15, 45, 170, 15, "") Frame3DGadget(#Frame3D_01, 5, 30, 190, 520, "Человеческое тело") Frame3DGadget(#Frame3D_9, 205, 30, 355, 255, "Описание и возможный диагноз") Frame3DGadget(#Frame3D_10, 205, 290, 355, 260, "Методы лечения и лекарства") Frame3DGadget(#Frame3D_13, 570, 30, 190, 520, "Поиск болезней") StringGadget(#String_1, 580, 45, 170, 20, "") ListIconGadget(#ListIcon_2, 580, 70, 170, 475, "Болезнь", 160) EditorGadget(#Editor_3, 215, 50, 335, 230,#PB_Editor_ReadOnly) SendMessage_(GadgetID(#Editor_3),#EM_SETTARGETDEVICE, #Null, 0) EditorGadget(#Editor_4, 215, 310, 335, 235,#PB_Editor_ReadOnly) SendMessage_(GadgetID(#Editor_4),#EM_SETTARGETDEVICE, #Null, 0) ButtonGadget(#Button_75, 15, 520, 25, 20, "М") ButtonGadget(#Button_76, 50, 520, 25, 20, "О") ButtonGadget(#Button_77, 85, 520, 25, 20, "Т") ButtonGadget(#Button_78, 120, 520, 25, 20, "В") TextGadget(100,215,45,50,16," Кликни здесь") SetGadgetColor(100,#PB_Gadget_BackColor,GetSysColor_(#COLOR_INFOBK)) HideGadget(100,1) If CreateToolBar(#ToolBar_1, WindowID(#Window_0)) ToolBarStandardButton(#MENU_1,#PB_ToolBarIcon_New) ToolBarSeparator() ToolBarStandardButton(#MENU_9,#PB_ToolBarIcon_Help) ToolBarHeight=ToolBarHeight(#ToolBar_1) LineGadget(0, 0, ToolBarHeight,WindowWidth(#Window_0)) EndIf EndIf EndProcedure
не появляется у меня этот гаджет:
Frame3DGadget(#Frame3D_01, 5, 30, 190, 520, "Человеческое тело")
Поделиться32223.04.2010 17:57:11
Почему я не могу загнать в exe картинку jpg. Высвечивается ошибка. С ico нормально, а jpg, не хочет
Поделиться32323.04.2010 18:28:11
А декодер в коде присутствует?
Поделиться32423.04.2010 18:31:15
А декодер в коде присутствует?
это как? Именно jpg не хочет загружаться из памяти.
Поделиться32523.04.2010 18:36:11
UsePNGImageDecoder() поставь вначале своего кода.
Поделиться32623.04.2010 18:38:35
Тьфу ты, не глядя из справки скопировал UseJPEGImageDecoder() вот этот декодер надо
Поделиться32723.04.2010 18:44:36
Это у меня есть:)
Поделиться32823.04.2010 18:50:28
Так выложи код как он есть, или нам продолжать гадать на кофейной гуще.
Поделиться32923.04.2010 19:01:26
Ха, разобрался. Оказывается у меня UseJPEGImageDecoder() шла после загрузок иконок из памяти. Теперь все ок.
Поделиться33023.04.2010 19:44:40
Скажите пожалуйста, есть ли смысл запихивать изображения в exe, если во-первых, они имеют размер 50-100 кб каждый и во-вторых их количество будет варьироваться от 50 до 200. Как в данной ситуации лучше поступить, если учесть, что в программе будет раздел с фотоиллюстрациями. Может быть dll использовать? Вообщем посоветуйте, профи
Похожие темы
Вопросы новичка (продолжение…) | Вопросы по PureBasic | 29.06.2024 |
Скорее, это теоретический вопрос о правах в директории. | OffTop | 16.09.2022 |
Вопрос по отладке | Вопросы по PureBasic | 26.01.2017 |
Три вопроса по созданию браузера. | Вопросы по PureBasic | 01.11.2010 |
вопрос о точности типов данных | Вопросы по PureBasic | 20.05.2021 |