Главная страница
    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.05 c
15-1200407003
OSokin
2008-01-15 17:23
2008.02.17
Доки vs форумы


2-1201009454
savyhinst
2008-01-22 16:44
2008.02.17
Pascal Script


15-1200497600
_Shuler_
2008-01-16 18:33
2008.02.17
Language_default


15-1200305773
AntiUser
2008-01-14 13:16
2008.02.17
Oracle.


2-1200933382
Chysti
2008-01-21 19:36
2008.02.17
Как поменять свойство Caption у всех компонентов формы





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