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

Вниз

Unicode   Найти похожие ветки 

 
Res   (2008-01-26 11:14) [0]

Как сохранить файл в кодировке Unicode? Есть вот такая функция:

Function TranslateAnsiToUnicode(Src: string): WideString;
var
 i : integer;
 S : AnsiChar;
 D : WideChar;
 R : WideString;
 t : Tstrings;
begin
 R := "";
 for i := 1 to Length(Src) do
 begin
   S := Src[i];
   // API function. Unit Windows
   MultiByteToWideChar(CP_ACP, 0, @S, 1, @D, 1);
   R := R + D;
 end;
 Result := R;
end;

Но к сожалению файл все равно сохраняется в ansi. Что можете подсказать?


 
Dimaxx ©   (2008-01-26 11:22) [1]

Это только функция. Покажи свой код сохранения. 100-пудово там что-то неправильно делаешь.

PS: А не проще ли всю строку конвертировать сразу, а не извращаться с каждым символом?


 
Riply ©   (2008-01-26 11:22) [2]

> [0] Res   (26.01.08 11:14)
> Но к сожалению файл все равно сохраняется в ansi. Что можете подсказать?

Не вижу сохранения в файл.  

P.S.
IHMO, может почитать Help по MultiByteToWideChar ?


 
Res   (2008-01-26 11:38) [3]

pch.Add(TranslateAnsiToUnicode(name+" = "+inttostr(id)));
pch.SaveToFile("skill_pch.txt");


 
Riply ©   (2008-01-26 11:43) [4]

> [3] Res   (26.01.08 11:38)
> pch.Add(TranslateAnsiToUnicode(name+" = "+inttostr(id)));
> pch.SaveToFile("skill_pch.txt");

Кто такой pch ?
Подозреваю, что в pch.Add(TranslateAnsiToUnicode(name+" = "+inttostr(id)))
строка преобразуется обратно в ANSI.


 
Res   (2008-01-26 11:47) [5]

pch:=Tstringlist.Create;
И как быть если обратно преобразует?


 
Riply ©   (2008-01-26 11:51) [6]

> [5] Res   (26.01.08 11:47)
> pch:=Tstringlist.Create;
> И как быть если обратно преобразует?

Может
uses
WideStrings;

TWideStringList

?


 
Res   (2008-01-26 11:54) [7]

uses WideStrings; Модуль не найден


 
Leonid Troyanovsky ©   (2008-01-26 12:02) [8]


> Res   (26.01.08 11:47) [5]

> pch:=Tstringlist.Create;
> И как быть если обратно преобразует?

А нах ее в лист пихать?
Сохранить строку в файл не умеем?

--
Regards, LVT.


 
Leonid Troyanovsky ©   (2008-01-26 12:03) [9]


> Res   (26.01.08 11:54) [7]

> uses WideStrings; Модуль не найден

Не повезло тебе.

--
Regards, LVT.


 
Res   (2008-01-26 12:05) [10]


> А нах ее в лист пихать?
> Сохранить строку в файл не умеем?

нет, подскажите как)))


 
MetalFan ©   (2008-01-26 12:09) [11]

преобразование в юникод произойдет автоматически при
присвоении WideString := AnsiString.
для сохранения WideString в файл можно написать так:

 SomeFileStream.Write( lWideString[1], Length(lWideString) * SizeOf(lWideString[1]));


 
Res   (2008-01-26 12:24) [12]


> преобразование в юникод произойдет автоматически при
> присвоении WideString := AnsiString.
> для сохранения WideString в файл можно написать так:
>
>  SomeFileStream.Write( lWideString[1], Length(lWideString)
> * SizeOf(lWideString[1]));

А можно пример, т.е. от создания SomeFileStream(ya.ru не знает такого ) до записи. а?


 
Leonid Troyanovsky ©   (2008-01-26 12:34) [13]


> Res   (26.01.08 12:05) [10]

> > Сохранить строку в файл не умеем?
>
> нет, подскажите как)))


 with TFileStream.Create("myfile.ext", fmCreate or fmOpenWrite) do
   try
     WriteBuffer(R[1], Length(R)*2);
   finally
     Free;
   end;

Только, в Function TranslateAnsiToUnicode у тебя бред написан.

--
Regards, LVT.


 
Anatoly Podgoretsky ©   (2008-01-26 13:15) [14]

Большой бред.


 
Res   (2008-01-26 13:44) [15]


> Большой бред.

Подскажите тогда пожалуйста, что не бред )


 
Palladin ©   (2008-01-26 13:50) [16]

уже подсказали


 
Anatoly Podgoretsky ©   (2008-01-27 00:55) [17]

> Res  (26.01.2008 13:44:15)  [15]

На слабо не стоит брать, а советов дали достаточно.


 
ketmar ©   (2008-01-27 13:22) [18]

самый большой бред — это само наличие оной функции. зачем просто не присвоить AnsiString WideString"у?



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

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

Наверх





Память: 0.48 MB
Время: 0.042 c
8-1173686228
feodul
2007-03-12 10:57
2008.02.17
Где найти учебники по работе с расровыми изображениями?


2-1201179793
Darvin
2008-01-24 16:03
2008.02.17
Как сделать окно fsStayOnTop только для своего приложения


1-1194517113
DDDeN
2007-11-08 13:18
2008.02.17
Реализация механизма расписания


15-1200306381
alles
2008-01-14 13:26
2008.02.17
Не подскажите программу...


3-1191395182
zorik
2007-10-03 11:06
2008.02.17
MySQL и Delphi





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский