Форум: "Основная";
Текущий архив: 2004.08.08;
Скачать: [xml.tar.bz2];
ВнизКак сохранить файл в нужной кодировке Найти похожие ветки
← →
eklmn (2004-07-22 09:24) [0]Проблема, кажется, простая.
Есть список list: TStrings,
который сохраняется в файл: list.savetofile("asf.txt").
По умолчанию кодировка файла win-1251. Как можно сохранить в досовской кодировке?
Заранее благодарен за помощь.
← →
Reindeer Moss Eater © (2004-07-22 09:26) [1]CharToOem
← →
eklmn (2004-07-22 09:33) [2]
> CharToOem
Я уже пытался, пишу:
var s1,s2:PChar;
...
s1:="asdf";
CharToOEM(s1,s2);
Почему-то пишет Access Violation. Что я неправильно делаю?
← →
Думкин © (2004-07-22 09:40) [3]> var s1,s2:PChar;
> ...
> s1:="asdf";
> CharToOEM(s1,s2);
А память? И чем string не угодил?
← →
eklmn (2004-07-22 09:43) [4]
> А память? И чем string не угодил?
Можно в этом месте поподробнее?
← →
Думкин © (2004-07-22 09:45) [5]В каком? там 2 места.
← →
eklmn (2004-07-22 09:50) [6]
> В каком? там 2 места.
Меня насчет памяти интересует.
← →
KSergey © (2004-07-22 09:51) [7]FTextBuf: String;
CharToOemBuff (PChar(FTextBuf), PChar(FTextBuf), Length(FTextBuf));
Или как вариант - сохранять через поток (TStrings.SaveToStream), могу дать простейшую надстройку над TFileStream, которая умеет сохранять с конвертированием (впрочем, все просто, понятно).
> list: TStrings,
Вот так вот и определен?? И такого класса объект создается? Так нельзя. Надо использовать TStringList
← →
Reindeer Moss Eater © (2004-07-22 09:52) [8]> list: TStrings,
Вот так вот и определен?? И такого класса объект создается? Так нельзя
Так нельзя советовать. А определять переменные - можно.
← →
Думкин © (2004-07-22 09:56) [9]лучше юзай
var s1,s2:String;
← →
KSergey © (2004-07-22 09:57) [10]> [8] Reindeer Moss Eater © (22.07.04 09:52)
> > list: TStrings,
>
> Вот так вот и определен?? И такого класса объект создается?
> Так нельзя
>
> Так нельзя советовать. А определять переменные - можно.
Хорошо, согласен.
Тогда переформулирую в уточняющий вопрос: а какого класса объект создается?
← →
Reindeer Moss Eater © (2004-07-22 09:58) [11]KSergey
У него трабл все равно не с этим связан.
А с неинициализированной PChar
← →
Alx2 © (2004-07-22 09:58) [12]>Я уже пытался, пишу:
>var s1,s2:PChar;
>..
>s1:="asdf";
>CharToOEM(s1,s2);
>Почему-то пишет Access Violation. Что я неправильно делаю?
Var S : String;
Begin
S := "fsdkjhgslkd";
CharToOem(PChar(S),PChar(S));
End;
← →
Reindeer Moss Eater © (2004-07-22 10:00) [13]s1:="asdf";
Setlength(s2,Length(s1));
CharToOEM(PChar(s1),PChar(s2));
← →
eklmn (2004-07-22 10:00) [14]
> FTextBuf: String;
>
> CharToOemBuff (PChar(FTextBuf), PChar(FTextBuf), Length(FTextBuf));
Ну вот, наконец-то конкретный ответ на конкретный вопрос. Спасибо.
> Вот так вот и определен?? И такого класса объект создается?
> Так нельзя. Надо использовать TStringList
По-моему, без разницы. Я пишу list:=TStringList.create. Это и в хелпе есть. Я всегда так делал - без проблем, сейчас просто кодировку нужно поменять.
← →
KSergey © (2004-07-22 10:02) [15]Остальные ответы были не менее конкретные
Просто они предполагали самостоятельную работу, всегда идущую на пользу ;)
← →
Думкин © (2004-07-22 10:02) [16]> [14] eklmn (22.07.04 10:00)
> Ну вот, наконец-то конкретный ответ на конкретный вопрос.
А мне казалось, что ответ дан в [1]. Только с PChar работать уметь надо, а это уже другой вопрос.
← →
eklmn (2004-07-22 10:04) [17]
> А с неинициализированной PChar
Еще ламерский вопрос, на будущее: под пчар обязательно выделять память?
← →
Думкин © (2004-07-22 10:07) [18]> [17] eklmn (22.07.04 10:04)
если с ним голяком работать - то да. Это указатель и все.
но всегда можно так PChar(String).
Просто со String(хоть тоже указатель) работа Дельфи устроена сложнее.
← →
KSergey © (2004-07-22 10:07) [19]Под PChar - нет
При определении переменной под ее хранение и так выделится память (в текущих реализациях - 4 байта)
Осталось только разобраться что же это такое на самом деле - PChar
← →
Anatoly Podgoretsky © (2004-07-22 10:09) [20]Не обязатель, достаточно объявить статически, что и сделано, память надо выделять под данные на которые показывает PCharVar
← →
Думкин © (2004-07-22 10:10) [21]> 19] KSergey © (22.07.04 10:07)
> [20] Anatoly Podgoretsky © (22.07.04 10:09)
Ну да, это и имел в виду. :(
← →
Думкин © (2004-07-22 10:12) [22]> Просто со String(хоть тоже указатель) работа Дельфи устроена сложнее
Опять же. Речь идет о длинных строках.
← →
vic (2004-07-22 10:14) [23]а можно вопрос по сабжу:
нужно перевести файлы(*.txt) из кодировки Dos в Windows.
Как?
← →
Reindeer Moss Eater © (2004-07-22 10:16) [24]На вопрос по сабжу уже ответили
← →
eklmn (2004-07-22 10:20) [25]
> нужно перевести файлы(*.txt) из кодировки Dos в Windows.
Насколько понимаю, так же, только использовать OEMToChar
← →
Anatoly Podgoretsky © (2004-07-22 10:49) [26]Да
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.08.08;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.042 c