Можно подробнее.
Откуда загружается, куда сохраняется?
То есть если загрузить текст и закрыть программу, а потом открыть, 
то в EditorGadget и в ComboBoxGadget будет пусто.
| PureBasic - форум | 
Привет, Гость! Войдите или зарегистрируйтесь.
Вы здесь » PureBasic - форум » Вопросы по PureBasic » Светодиодная матрица - МОДЖЕТ (антигаджет) на Пурике
Можно подробнее.
Откуда загружается, куда сохраняется?
То есть если загрузить текст и закрыть программу, а потом открыть, 
то в EditorGadget и в ComboBoxGadget будет пусто.
а потом открыть, то в EditorGadget и в ComboBoxGadget будет пусто.
Это про прогноз погоды?
ComboBoxGadget нужно заполнить названиями городов и выбрать сохраненный пункт, а затем загрузить из инета текущий прогноз погоды для выбранного города и отобразить его в EditorGadget.
Это про прогноз погоды?
Это именно про вкладку текст.
Поиск файлов и заполнение списка городов для прогноза погоды выполняется в отдельном потоке, для того, чтобы программа быстрее стартовала.
Именно в процедуре ProgramItit_Thread нужно устанавливать текущий пункт в выпадающих списках погоды и текста, а также, загружать текст и получать прогноз погоды при старте программы.
http://pure-basic.narod.ru/forum/MODGET … tilang.rar
Именно в процедуре ProgramItit_Thread
То, что доктор прописал.  
 
А каким образом можно организовать сохранение текста в EditorGadget, 
выбранного с помощью кнопки "Загрузить текст"?
Как-то странно погода сохраняется. До 72-го города нормально, а больше, то сохранится, то нет.
Это у всех или только у меня?
сохранение текста в EditorGadget,
Самого текста, или пути к файлу для повторного открытия файла при старте программы?
Если первое, то процедуру сохранения текста в файл из гаджета, выше выкладывал.
Если второе, то нужно завести строковую переменную, в которую будет заноситься путь к файлу, если его выбрать кнопкой.
При выборе файла в выпадающем списке, переменную нужно очищать.
При старте программы смотрим, если переменная пустая, тогда грузим текст из файла, выбранного в выпадающем списке, а если в ней путь к файлу, тогда загружаем текст из этого файла.
Понял. 
Что-то в спраке не нашел, как узнать полный путь к файлу, только частичный.
полный путь к файлу
К исполняемому файлу программы?
ProgramFilename()
К исполняемому файлу программы?
Путь к программе я знаю как найти, а вот путь к файлу, который лежит где-то на жестком диске, нет.  
 
Нашел как найти часть пути, расширение файла, название и расширение файла, но соеденить воедино не могу понять как.
Отредактировано max (05.07.2011 19:13:15)
Путь к программе я знаю как найти, а вот путь к файлу, который лежит где-то на жестком диске, нет.
Пойди туда, не знаю куда, найди то, не знаю что....  
   
 
Ну хоть по каким признакам искать?
Что за файл и где он обычно бывает, потому что сканировать весь диск компа это очень долго!
То есть я открыл какой-то файл с диска.
а вот путь к файлу, который лежит где-то на жестком диске, нет. Нашел как найти часть пути, расширение файла, название и расширение файла, но соеденить воедино не могу понять как.
То есть я открыл какой-то файл с диска.
Ну.
Если файл был выбран, например с помощью OpenFileRequester, то функция вернет абсолютный путь к файлу.
 StandardFile$ = "C:\autoexec.bat"   ; set initial file+path to display
 ; With next string we will set the search patterns ("|" as separator) for file displaying:
 ;  1st: "Text (*.txt)" as name, ".txt" and ".bat" as allowed extension
 ;  2nd: "PureBasic (*.pb)" as name, ".pb" as allowed extension
 ;  3rd: "All files (*.*) as name, "*.*" as allowed extension, valid for all files
 Pattern$ = "Text (*.txt)|*.txt;*.bat|PureBasic (*.pb)|*.pb|All files (*.*)|*.*"
 Pattern = 0    ; use the first of the three possible patterns as standard
 File$ = OpenFileRequester("Please choose file to load", StandardFile$, Pattern$, Pattern)
 If File$
    MessageRequester("Information", "You have selected following file:" + Chr(10) + File$, 0)
 Else
    MessageRequester("Information", "The requester was canceled.", 0) 
 EndIfТеперь дошло. 
А как очистить строковую переменную? Так:
Put=0
А как очистить строковую переменную?
Text.s="Тут текст" Debug Text Text="" Debug Text
Ясно.
В итоге на ум пришло следующее:
Global Put.s ;абсолютный путь к файлу
в процедуре ProgramItit_Thread сделал так
  If Put=""
    File$ = Path$ + GetGadgetText(48)+".txt"
  Else
   File$ = Put
  If FileSize(File$)>0
    Text=ReadText(File$)
    SetGadgetText(49,Text)
    EndIf
  EndIfв событиях компонентов добавил
      Case 48
        If EventType() = 1 ; Выпадающий список закрылся
          File$ = Path$ + GetGadgetText(48)+".txt"
          Text=ReadText(File$)
          SetGadgetText(49,Text)
          Put=""
        EndIf
        
      Case 50
        File$ = OpenFileRequester(open, "", Maska , 0)
        If File$
          Put=File$
          Text=ReadText(File$)
          SetGadgetText(49,Text)
        EndIfНо что-то не пошло. Куда дальше копать?
Но что-то не пошло.
Что именно не пошло?
Содержимое переменной сохраняется/считывается из файла с настройками?
Содержимое переменной сохраняется/считывается из файла с настройками?
А вот этого я неделал. Щас попробую.
При компеляции выскакивает ошибка:
При компеляции выскакивает ошибка:
Раз сохраняется строковая переменная, то нужно использовать WritePreferenceString.
С чтением тоже самое.
С кнопки теперь сохраняется, а в ComboBoxGadget название файла есть, но EditorGadget пустой. 
ComboBoxGadget название файла есть, но EditorGadget пустой
Отладчик что показывает?
  If Put=""
    File$ = Path$ + GetGadgetText(48)+".txt"
    Debug File$
  Else
    File$ = Put
    Debug File$
  If FileSize(File$)>0
    Text=ReadText(File$)
    SetGadgetText(49,Text)
    EndIf
  EndIfИ при Put="", и в другом случае путь к файлу правильный. 
Я имел в виду, пошаговое выполнение программы, чтобы посмотреть в каком месте сценарий работы идет не так, как задумано.
Сделай так:
If Put="" File$ = Path$ + GetGadgetText(48)+".txt" Debug File$ Else File$ = Put Debug File$ EndIf If FileSize(File$)>0 Text=ReadText(File$) SetGadgetText(49,Text) EndIf
Так вроде нормально работает.
Заметил такую странность:
В конце загруженного текста добавляются символы.  
При чем каждый раз разные.
Отредактировано max (06.07.2011 12:12:17)
В конце загруженного текста добавляются символы. При чем каждый раз разные.
Если создать исполняемый файл и запустить его, будет тоже самое?
Просто отладчик метит переменные для проверки выхода за их границы.
Вы здесь » PureBasic - форум » Вопросы по PureBasic » Светодиодная матрица - МОДЖЕТ (антигаджет) на Пурике