Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "KOL";
Текущий архив: 2012.02.12;
Скачать: [xml.tar.bz2];

Вниз

KOL & WinCE   Найти похожие ветки 

 
DmitriyR   (2009-05-01 16:48) [0]

Знаю вопрос возможно глуппый но немогу найти ответа :(
Пишу прогу на FPC 2.2.2 (Lazarus) под WinCE с помощью KOL_MCK 2.80.3
Вот с KOL и возникает проблемма:
Создал на форме KOLMemo
и тут встал на грабли немогу найти как работает это мемо с файлами :(
тоесть считать из файла в мемо, сохранить из мемо в файл.
Да и еще мож кто знает как в мемо работать с Юникодом?
Мне надо открыть в мемо файл реестра (reg), отредактировать его и сохранить. Но файлы реестра идут в юникоде.
Может кто прольет свет на решение.


 
L`Autour   (2009-05-01 21:45) [1]

WideCharToMultiByte
MultiByteToWideChar


 
DmitriyR   (2009-05-03 14:49) [2]

Сам спрашивал сам и отвечаю.
Сделал вот так может и неправильно но работает:

procedure TForm1.Button1Click(Sender: PObj);
var
 F: PStream;
 N: WideString;
begin
 F:= NewReadFileStream("..\Temp\test.reg");
 While F.Position < F.Size do
 begin
   Memo1.Add(F.ReadWStrZ);
 end;
 F.Free;
end;

Тоесть чтение из файла (unicode) в мемо работает на ура без дополнительной обработки.


 
DmitriyR   (2009-05-03 15:35) [3]

А вот с сохранением возник вопрос:
rocedure TForm1.Button2Click(Sender: PObj);
var
 F: PStream;
 S: WideString;
begin
//
 F:= NewWriteFileStream("..\Temp\test.txt");
 For L:= 0 to Memo1.Count do
 begin
   S:= Memo1.Items[L]+#13+#10;
   F.WriteWStrZ(S);
 end;
 F.Free;
end;

Все бы хорошо но одно но WriteWStrZ заканчивает строку записью #0000
тоесть в коце каждой строки получается  .........#13#10#00
А вот просто WriteWStr увы нет :( мож кто знает как поправить дело или чем заменить мона?


 
Дмитрий К ©   (2009-05-03 15:59) [4]

Для сохранения:
WStrSaveToFile("test.txt", Memo1.Text);
для загрузки:
Memo1.Text := WStrLoadFromFile("test.txt");


 
DmitriyR   (2009-05-03 19:31) [5]

Дмитрий К
Спасибо за подсказку. Но твой метод непойдет :(
При загрузке Мемо получает 1 символ и приехали :(
читаю же файл Unicode а там море байтов ноликов :) вот мемо и неполучает ничего после первого же нолика :) #0

Запись тоже самое сохраняет содержимое мемо но без опятьже ноликов :) #0

С записью тоже поборолся :) порыл в KOL.pas и вуаля:
procedure TForm1.Button2Click(Sender: PObj);
var
 F: PStream;
 S: WideString;
 L: integer;
begin
//
 F:= NewWriteFileStream("..\Temp\test1.reg");
 For L:= 0 to (Memo1.Count - 2) do
 begin
   S:= Memo1.Items[L]+#13+#10;
   F.Write(S[ 1 ], (Length( S )) * 2 );
 end;
 F.Free;
end;

Тоесть предыдущий мой метод открытия и этот метод сохранения работают на ура :)
Файл первоисточник открываю и сохраняю в другой, результат идиентичны.
Одно непойму почему приходится делать : (Memo1.Count - 2) тоесть почему минус 2. но результат выдает правильный.


 
Дмитрий   (2009-05-04 16:23) [6]


> тоесть почему минус 2

нупиши минус один, какая разница. Видимо там лишний снос каретки, вот и всё


 
DmitriyR   (2009-05-04 17:59) [7]

Мало ли кому пригодится, чтоб на теже грабли не наступать.
Нарыл ошибку почему приходилось делать (Memo1.Count - 2)
Поправил терь все правильно как надо:
procedure TForm1.Button2Click(Sender: PObj);
var
F: PStream;
S: WideString;
L: integer;
begin
//
F:= NewWriteFileStream("..\Temp\test1.reg");
For L:= 0 to (Memo1.Count - 1) do
begin
  If L = (Memo1.Count - 1) then S:= Memo1.Items[L]
    else S:= Memo1.Items[L]+#13+#10;
  F.Write(S[ 1 ], (Length( S )) * 2 );
end;
F.Free;
end;

Тоесть в последней пустой строке я первоначально добовлял #13#10 что приводило к добавлению еще одной лишней строки при сохранении.
Чем чаще редактируеш тем больше в конце образовывалось пустых строк.
Теперь поправил.


 
DmitriyR   (2009-05-04 18:04) [8]

Может еще кто подскажет или ссылку на ман или пример даст
Реализации с помощью КОЛ для Мемо (Ундо, Редо, Кут, Копи, Пасте, Делете, Селект Алл).

Сильно непинайте раньше сидел на Дельфи и ВинСЕ незанимался, а тут подсел и щас приходится под FPC KOL разбирать все :(



Страницы: 1 вся ветка

Форум: "KOL";
Текущий архив: 2012.02.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.003 c
3-1271666302
fearless
2010-04-19 12:38
2012.02.12
Получить список компьютеров, подключенных к конкретной БД


6-1247829395
darkcoder
2009-07-17 15:16
2012.02.12
Webbrowser ReadyState проблемы


15-1319362763
sniknik
2011-10-23 13:39
2012.02.12
Вопрос админам по nginx с ssl...


15-1319518385
OW
2011-10-25 08:53
2012.02.12
Подскажите идею, алгоритм. Управление с запаздыванием.


15-1318939960
И. Павел
2011-10-18 16:12
2012.02.12
Особенности инициализации переменных в C#





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский