Форум программистов, компьютерный форум, киберфорум
Pure Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.60/25: Рейтинг темы: голосов - 25, средняя оценка - 4.60
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443

Особенности работы с файлами в PureBasic

05.02.2023, 22:45. Показов 6854. Ответов 55
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Столкнулся с такой проблемой.
Надо считать весь контент текстового файла в строковую переменную, но не построчно (так легко), а сразу весь целиком.
Вот работающий код PowerBasic, который выполняет эту работу и демонстрирует считанную строку в месседжбоксе:

PowerBasic
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#COMPILE EXE
 
function pbmain () AS LONG
  Local str_Text As String
  Local lng_File_length As Long
 
  'Считываем весь файл целиком в память.
  Open "C:\test.txt" For Binary As #0
     lng_File_length = LOF(0)
     str_Text = Space$ (lng_File_length)
     Get #0, , str_Text
  Close #0
  msgbox (str_Text)
END function
А как сделать то же самое в PureBasic?
Чем заменить функцию GET, которой нет в PureBasic?
GET [#] filenum&, [RecPos], Var
Если опциональный RecPos опущен, считывание файла начинается с первого байта.

Вот набросал работающую заготовку. Что надо вставить вместо вопросительных знаков?
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
EnableExplicit
 
Define str_Text.s
Define lng_File_length.l
 
; Считываем весь файл целиком в память.
If OpenFile(0, "Test.txt")
    lng_File_length = Lof(0)
    str_Text = Space (lng_File_length)
;   ??????????????????????????????????    
;   ??????????????????????????????????
   CloseFile (0)
EndIf     
  MessageRequester("", str_Text)
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.02.2023, 22:45
Ответы с готовыми решениями:

JApplet: особенности работы с локальными файлами
Если ли какие-то особенности, при работе с файловыми потоками из потомка JApplet? Можно ли писать в локальные файлы из swing-апплета?...

особенности работы ViewState
недавно начал изучать ASP. немного почитал про жизненный цикл и особенности работы ViewState. Возник следующий вопрос: есть страничка: ...

Особенности работы установщика
Здравствуйте. Если я создал установщик, который устанавливает сразу два проекта и в обоих проектах я переопределил метод Install, то...

55
12 / 12 / 0
Регистрация: 02.07.2014
Сообщений: 124
18.02.2023, 13:04
Студворк — интернет-сервис помощи студентам
>В настройках должен быть выбран русский язык.
По ходу обсуждения не вижу упоминания об этом.
0
Эксперт по электронике
7236 / 3414 / 348
Регистрация: 28.10.2011
Сообщений: 13,441
Записей в блоге: 7
18.02.2023, 13:18
Цитата Сообщение от useful Посмотреть сообщение
По ходу обсуждения не вижу упоминания об этом.
На скрине локализация русская Особенности работы с файлами в PureBasic
Про другие языки я писал Особенности работы с файлами в PureBasic
0
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
18.02.2023, 14:44  [ТС]
Цитата Сообщение от locm Посмотреть сообщение
в английском и французском языках текст нормальный.
Цитата Сообщение от locm Посмотреть сообщение
Цитата Сообщение от Power_Basic Посмотреть сообщение
почему информация, относящаяся к массивам, так странно отображается во всплывающих подсказках отладчика
Видимо неправильная кодировка при передаче данных отладчиком.
Текст должны быть таким:
Переменная не найдена 'MyArray'.
Если исходить из того, что в английском языке поведение правильное, тогда при наведении курсора на массивы и служебные слова вообще не должно появляться никаких всплывающих подсказок. Вот сейчас специально поэкспериментировал в английском интерфейсе. В этой короткой программе подсказка выскакивает только при наведении курсора на простую переменную B, а на всё остальное не реагирует вообще никак.

PureBasic
1
2
3
4
5
6
7
Dim A.s(2)
 
A(0) = "лето "
A(1) = "зима"
B.s = A(0) + A(1)
 
Debug B
Миниатюры
Особенности работы с файлами в PureBasic  
0
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
18.02.2023, 18:36  [ТС]
Сейчас обнаружил, что и в портабельной версии 6.00 точно такая же проблема.
0
63 / 61 / 3
Регистрация: 06.11.2010
Сообщений: 186
Записей в блоге: 1
18.02.2023, 18:49
useful
В Linux проблемы с русским языком в консоли отладчика. Можно было бы сделать поддержку UTF-8, чтобы сообщения были на русском. Если хочешь сообщи.

Исходники IDE открыты, так что при желании можно исправить, по крайней мере для Windows. Я даже пробовал исправлять и компилировал.
0
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
18.02.2023, 20:20  [ТС]
Цитата Сообщение от AZJIO Посмотреть сообщение
Исходники IDE открыты, так что при желании можно исправить, по крайней мере для Windows. Я даже пробовал исправлять и компилировал.
Любопытно, на каком ЯП они написаны? Если на самом себе, тогда, пожалуй, я сумею найти нужное место в коде и внести нужные изменения. А если, например, на Си, тогда скорее всего не сумею.

Хотя, нужно ли мне это вообще? Да пусть всё остаётся как есть, меня это вполне устраивает. Как говорится, лучшее - враг хорошего
0
Эксперт по электронике
7236 / 3414 / 348
Регистрация: 28.10.2011
Сообщений: 13,441
Записей в блоге: 7
19.02.2023, 00:22
PureBasic OpenSource Projects
1
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
23.02.2023, 14:37  [ТС]
Цитата Сообщение от locm Посмотреть сообщение
Видимо неправильная кодировка при передаче данных отладчиком.
Текст должны быть таким:
Переменная не найдена 'MyArray'
Сегодня обнаружил, что именно так отображается на моём слабеньком нетбуке с Win_7_32. Соответственно, там и версия PureBasic тоже 32-битная 6.00.

А на большом компе с Win_10_64 установлена 64-битная 6.00. Там отображается коряво.
Может быть эта информация будет полезна для тех, кто всерьёз озадачится этой проблемой.
0
12 / 12 / 0
Регистрация: 02.07.2014
Сообщений: 124
23.02.2023, 14:48
> озадачится этой проблемой
Проблему обсудили несколько лет назад и забыли.
Для того, что бы заинтересовать Фреда решением, нужно, что бы русскоговорящих покупателей PB было бы хоть немного по более. На сегодня думаю за все ~20 лет и сотни не наберётся.
Тему закрыть и забыть.
0
63 / 61 / 3
Регистрация: 06.11.2010
Сообщений: 186
Записей в блоге: 1
23.02.2023, 17:36
useful
отсутствие UTF-8 отражается не только на русскоговорящих, а на китайском, греческом, еврейском, грузинском, арабском и т.д. То есть все кроме букв латинского языка. Как сегодня модно говорить большая половина мира.
1
12 / 12 / 0
Регистрация: 02.07.2014
Сообщений: 124
23.02.2023, 17:41
Если бы где то в мире кто то реально хотел пользоваться родным языком и сообщество таких желающих было значительным, давно бы уже проблема решилась. Ибо она не из неразрешимых точно, она просто не важна автору.
В конце концов пару лет назад, была инициатива по поводу платных фич в развитие. Хотите скидывайтесь и убеждайте.
p.s. Пустые разговоры имеет смысл прекратить.
0
0 / 0 / 0
Регистрация: 07.09.2023
Сообщений: 2
07.09.2023, 17:15
Цитата Сообщение от useful Посмотреть сообщение
Тему закрыть и забыть.
Всё дело в разных кодировках файлов перевода, которые находятся в папке Catalogs\Russian !
Путь C:\Program Files\PureBasic\Catalogs\

Для 64-битных надо все 4 файла:
Compiler.catalog
Debugger.catalog
Editor.catalog
Libraries.catalog

перевести в UTF-8 с BOM (это отметка кодировки в начале файла)
Для 32-битных перевести в ANSI

Я использовал для этих целей AkelPad

Можно переименовать строку Language = Russian
Для 64-битных в Language = Russian (UTF-8)
Для 32-битных в Language = Russian (ANSI),
если файлов перевода будет несколько

Проблема решаема и без финансирования автора
На каждую хитрую гайку найдётся болт с резьбой
0
12 / 12 / 0
Регистрация: 02.07.2014
Сообщений: 124
07.09.2023, 18:29
Вы не уловили сути проблемы.
Главная проблема в том, что сообщения компилятора не utf-8 а ascii,
А меню IDE давно прекрасно кому нужно переводится.
0
Эксперт по электронике
7236 / 3414 / 348
Регистрация: 28.10.2011
Сообщений: 13,441
Записей в блоге: 7
07.09.2023, 20:21
Цитата Сообщение от useful Посмотреть сообщение
Главная проблема в том, что сообщения компилятора не utf-8 а ascii
В 6.03 в utf-8.
debugger.catalog и libraries.catalog по прежнему ascii.
1
0 / 0 / 0
Регистрация: 07.09.2023
Сообщений: 2
07.09.2023, 20:27
locm, можно самому пересохранить в необходимой кодировке и посмотреть как отобразятся символы
У меня в PB6.03b5 x64 эти файлы все в UTF-8 и нет китайских сообщений, либо на них не натыкаюсь по волею случая
0
Эксперт по электронике
7236 / 3414 / 348
Регистрация: 28.10.2011
Сообщений: 13,441
Записей в блоге: 7
07.09.2023, 20:34
Посмотрите будут ли ошибки "на китайском".
PureBasic
1
Print("")
PureBasic
1
x=x/x
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.09.2023, 20:34

Особенности работы с COM-портом
...доброго времени суток, уважаемые форумчане! Имеется программа-драйвер COM-порта (архив COM-порт.rar и общий вид приложены). Свои функции...

Особенности работы fread
Решаю типовую задачу: считывание заголовка bmp-файла (точечного рисунка). Однако у меня ничего не получалось. В ходе расследования...

Особенности работы с обобщениями
Здравствуйте! Разбираюсь с обобщениями. Набросала такой код: public class Test { public static void Main() { // your code...

особенности работы c css
Доброго времени суток. Вопрос такой: Почему контейнер с кнопкой уезжает? <div></div> <div> ...

особенности работы @namelookup
как известно Syntax @NameLookup( ; username; itemtoreturn ) .... username Text or text list. Specify primary or alternate...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
56
Ответ Создать тему
Новые блоги и статьи
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru