Найдено 9 результатов

Risto
17.03.2016 20:15:41
Форум: Lazarus
Тема: Вариативность функций во FreePascal Как это работает?
Ответы: 4
Просмотры: 4241

Вариативность функций во FreePascal Как это работает?

Первая ситуация: Есть класс, в котором объявлена процедура

procedure SetDefaultValue(DefValue:integer);
procedure SetDefaultValue(DefValue:real);
procedure SetDefaultValue(DefValue:string);
procedure SetDefaultValue(DefValue:char);
procedure SetDefaultValue(DefValue:boolean ...
Risto
11.03.2016 04:47:38
Форум: Lazarus
Тема: [Решено] Запись файлов юникодом и не только
Ответы: 6
Просмотры: 5363

Re: Запись файлов юникодом и не только

Это генератор JSON-а может (если захочет) экранировать такие символы. Сохранение тут непричем. Читайте/пишите так, чтобы экранирование учитывалось.
Да, это TJSONObject.AsJSON фигнёй страдал. Спасибо за подсказку.

Добавлено спустя 14 часов 2 минуты 51 секунду:
Re: [Решено] Запись файлов ...
Risto
10.03.2016 12:38:07
Форум: Lazarus
Тема: [Решено] EOSError 1410 при работе с TFileStream.Create
Ответы: 4
Просмотры: 4064

Re: EOSError 1410 при работе с исключениями

А ларчик просто открывался: Лазарус не желал открывать поток к несуществующему файлу. А я, наивный, надеялся, что он его создаст. Причём тут классы так и не понял, но ситуацию исправил только переход от TFileStream.Create('config.json',fmOpenWrite) к старому доброму

assignfile(NewFile,'config&#46 ...
Risto
10.03.2016 12:16:23
Форум: Lazarus
Тема: [Решено] Запись файлов юникодом и не только
Ответы: 6
Просмотры: 5363

Re: Запись файлов юникодом и не только

program RawB;

uses
Classes,
SysUtils;

var
Stream: TFileStream;
Raw: RawByteString;
begin
Stream := TFileStream.Create('world.txt', fmCreate);
try
Raw := 'Привет мир!';
SetCodePage(Raw, CP_UTF8, True);
SetCodePage(Raw, CP_NONE, False);
Stream.WriteBuffer(Raw ...
Risto
10.03.2016 11:23:35
Форум: Lazarus
Тема: [Решено] Запись файлов юникодом и не только
Ответы: 6
Просмотры: 5363

Re: Запись файлов юникодом и не только

Deimos писал(а):setdirseparators


Увы, нет. Она приводит к стандарту системы, то есть тому, от чего я пытаюсь избавиться в Винде.
Risto
10.03.2016 10:57:37
Форум: Lazarus
Тема: [Решено] Запись файлов юникодом и не только
Ответы: 6
Просмотры: 5363

[Решено] Запись файлов юникодом и не только

Собственно, имеется несколько вопросов по записи файлов. Использую TFileStream, и уже сильно не уверен, что правильно делаю.
1. Как записать unicodestring в файл, избежав перекодирования в Ansii? Write заполняет файл чем-то похожим на двоичный код, WriteAnsiString записывает текст, но в кодировке ...
Risto
10.03.2016 06:40:19
Форум: Lazarus
Тема: [Решено] EOSError 1410 при работе с TFileStream.Create
Ответы: 4
Просмотры: 4064

Re: EOSError 1410 при работе с TFileStream

Гм...
Не логичнее ли применить конструкцию

... чем намеренно заниматься провоцированием исключений?


Может и логично, только неправильно. Тогда я не узнаю, почему код не сработал так, как мне было нужно, как избегать этой ошибки, и когда лучше использовать/не использовать лювлю исключений. Я ...
Risto
10.03.2016 03:33:33
Форум: Lazarus
Тема: [Решено] EOSError 1410 при работе с TFileStream.Create
Ответы: 4
Просмотры: 4064

[Решено] EOSError 1410 при работе с TFileStream.Create

UPD: Опытным путём выяснил, что вылет вообще не зависит от содержимого блока exception. Более того, точка останова в одной из подключаемых библиотек.

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