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

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

05.02.2023, 22:45. Показов 6454. Ответов 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
Сообщений: 117
18.02.2023, 13:04
Студворк — интернет-сервис помощи студентам
>В настройках должен быть выбран русский язык.
По ходу обсуждения не вижу упоминания об этом.
0
Эксперт по электронике
7146 / 3325 / 342
Регистрация: 28.10.2011
Сообщений: 13,119
Записей в блоге: 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
Эксперт по электронике
7146 / 3325 / 342
Регистрация: 28.10.2011
Сообщений: 13,119
Записей в блоге: 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
Сообщений: 117
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
Сообщений: 117
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
Сообщений: 117
07.09.2023, 18:29
Вы не уловили сути проблемы.
Главная проблема в том, что сообщения компилятора не utf-8 а ascii,
А меню IDE давно прекрасно кому нужно переводится.
0
Эксперт по электронике
7146 / 3325 / 342
Регистрация: 28.10.2011
Сообщений: 13,119
Записей в блоге: 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
Эксперт по электронике
7146 / 3325 / 342
Регистрация: 28.10.2011
Сообщений: 13,119
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
SUNO Ai - Река Без Дна
zorxor 31.07.2026
Автор стихотворения - астрофизик Марина Катыс Ссылка на сгенерированную музыкальную композицию: https:/ / suno. com/ song/ 6f6e5464-b290-4650-be6c-44c85f8d8013 Я говорю, что Время- как вода течет. . .
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла: Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет Новости компьютерного мира и их обсуждение (4) Салют, шампанское, овации! :drink:
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru