PureBasic - форум

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » PureBasic - форум » Вопросы по PureBasic » Светодиодная матрица - МОДЖЕТ (антигаджет) на Пурике


Светодиодная матрица - МОДЖЕТ (антигаджет) на Пурике

Сообщений 211 страница 240 из 446

211

Пётр написал(а):

Можно подробнее.
Откуда загружается, куда сохраняется?

То есть если загрузить текст и закрыть программу, а потом открыть,
то в EditorGadget и в ComboBoxGadget будет пусто.

0

212

max написал(а):

а потом открыть, то в EditorGadget и в ComboBoxGadget будет пусто.

Это про прогноз погоды?
ComboBoxGadget нужно заполнить названиями городов и выбрать сохраненный пункт, а затем загрузить из инета текущий прогноз погоды для выбранного города и отобразить его в EditorGadget.

0

213

Пётр написал(а):

Это про прогноз погоды?

Это именно про вкладку текст.

0

214

Поиск файлов и заполнение списка городов для прогноза погоды выполняется в отдельном потоке, для того, чтобы программа быстрее стартовала.
Именно в процедуре ProgramItit_Thread нужно устанавливать текущий пункт в выпадающих списках погоды и текста, а также, загружать текст и получать прогноз погоды при старте программы.
http://pure-basic.narod.ru/forum/MODGET … tilang.rar

+1

215

Пётр написал(а):

Именно в процедуре ProgramItit_Thread

То, что доктор прописал. :cool:
А каким образом можно организовать сохранение текста в EditorGadget,
выбранного с помощью кнопки "Загрузить текст"?

0

216

Как-то странно погода сохраняется. До 72-го города нормально, а больше, то сохранится, то нет.
Это у всех или только у меня?

0

217

max написал(а):

сохранение текста в EditorGadget,

Самого текста, или пути к файлу для повторного открытия файла при старте программы?
Если первое, то процедуру сохранения текста в файл из гаджета, выше выкладывал.
Если второе, то нужно завести строковую переменную, в которую будет заноситься путь к файлу, если его выбрать кнопкой.
При выборе файла в выпадающем списке, переменную нужно очищать.
При старте программы смотрим, если переменная пустая, тогда грузим текст из файла, выбранного в выпадающем списке, а если в ней путь к файлу, тогда загружаем текст из этого файла.

0

218

Понял. :writing:

0

219

Что-то в спраке не нашел, как узнать полный путь к файлу, только частичный.

0

220

max написал(а):

полный путь к файлу

К исполняемому файлу программы?

Код:
ProgramFilename()

0

221

Пётр написал(а):

К исполняемому файлу программы?

Путь к программе я знаю как найти, а вот путь к файлу, который лежит где-то на жестком диске, нет. :dontknow:
Нашел как найти часть пути, расширение файла, название и расширение файла, но соеденить воедино не могу понять как.

Отредактировано max (05.07.2011 19:13:15)

0

222

max написал(а):

Путь к программе я знаю как найти, а вот путь к файлу, который лежит где-то на жестком диске, нет.

Пойди туда, не знаю куда, найди то, не знаю что.... :D  :tomato:
Ну хоть по каким признакам искать?
Что за файл и где он обычно бывает, потому что сканировать весь диск компа это очень долго!

0

223

То есть я открыл какой-то файл с диска.

max написал(а):

а вот путь к файлу, который лежит где-то на жестком диске, нет.  Нашел как найти часть пути, расширение файла, название и расширение файла, но соеденить воедино не могу понять как.

0

224

max написал(а):

То есть я открыл какой-то файл с диска.

Ну.
Если файл был выбран, например с помощью 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

0

225

Теперь дошло. :idea:

0

226

А как очистить строковую переменную? Так:

Код:
Put=0

0

227

max написал(а):

А как очистить строковую переменную?

Код:
Text.s="Тут текст"
Debug Text
Text=""
Debug Text

0

228

Ясно.

0

229

В итоге на ум пришло следующее:

Код:
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

Но что-то не пошло. Куда дальше копать?

0

230

max написал(а):

Но что-то не пошло.

Что именно не пошло?
Содержимое переменной сохраняется/считывается из файла с настройками?

0

231

Пётр написал(а):

Содержимое переменной сохраняется/считывается из файла с настройками?

А вот этого я неделал. Щас попробую.

0

232

При компеляции выскакивает ошибка:

0

233

max написал(а):

При компеляции выскакивает ошибка:

Раз сохраняется строковая переменная, то нужно использовать WritePreferenceString.
С чтением тоже самое.

0

234

С кнопки теперь сохраняется, а в ComboBoxGadget название файла есть, но EditorGadget пустой. :dontknow:

0

235

max написал(а):

ComboBoxGadget название файла есть, но EditorGadget пустой

Отладчик что показывает?

0

236

Код:
  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="", и в другом случае путь к файлу правильный. :dontknow:

0

237

Я имел в виду, пошаговое выполнение программы, чтобы посмотреть в каком месте сценарий работы идет не так, как задумано.

Сделай так:

Код:
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

0

238

Так вроде нормально работает.

0

239

Заметил такую странность:
В конце загруженного текста добавляются символы.  :huh:
При чем каждый раз разные.

Отредактировано max (06.07.2011 12:12:17)

0

240

max написал(а):

В конце загруженного текста добавляются символы.  При чем каждый раз разные.

Если создать исполняемый файл и запустить его, будет тоже самое?
Просто отладчик метит переменные для проверки выхода за их границы.

0


Вы здесь » PureBasic - форум » Вопросы по PureBasic » Светодиодная матрица - МОДЖЕТ (антигаджет) на Пурике