Форум: "Начинающим";
Текущий архив: 2008.09.07;
Скачать: [xml.tar.bz2];
Внизпочему в консольном приложении русские буквы выводятся абракадабр Найти похожие ветки
← →
lavgirls (2008-07-27 22:22) [0]Вопрос такой почему в консольном приложении русские буквы выводятся абракадаброй. на моем бывшем компьютере помоему все нормально было
← →
{RASkov} © (2008-07-27 22:25) [1]> [0] lavgirls (27.07.08 22:22)
другая кодовая страница
← →
{RASkov} © (2008-07-27 22:27) [2]
program Project1;
{$APPTYPE CONSOLE}
uses Windows;
function StrToRus(const AStr: String): String;
begin
Result:="";
if Length(AStr)>0 then begin
SetLength(Result, Length(AStr));
CharToOem(PChar(AStr), PChar(Result));
end;
end;
begin
Writeln(StrToRus("АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧЩШЫЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчщшъ ыьэюя"));
Readln;
end.
← →
lavgirls (2008-07-27 22:35) [3]спасибо
← →
Тын-Дын © (2008-07-27 23:54) [4]
> {RASkov} © (27.07.08 22:27) [2]
Я бы немного упростил:function W2D(const s: String): String;
begin
Result := s;
if Result="" then Exit;
CharToOem(@Result[1],@Result[1]);
end;
← →
Тын-Дын © (2008-07-28 00:41) [5]тьфу, не то написал.
function W2D(const s: String): String;
begin
Result := s;
if Result<>"" then CharToOem(PChar(Result),PChar(Result));
end;
← →
Amoeba © (2008-07-28 01:01) [6]Код из RxLib:
function StrToOem(const AnsiStr: string): string;
begin
SetLength(Result, Length(AnsiStr));
if Length(Result) > 0 then
CharToOemBuff(PChar(AnsiStr), PChar(Result), Length(Result));
end;
← →
Anatoly Podgoretsky © (2008-07-28 01:07) [7]Тын-Дын © (28.07.08 00:41) [5]
Побочный эффект - изменение S
← →
Loginov Dmitry © (2008-07-28 08:03) [8]> тьфу, не то написал.
[4] правильнее было :))
← →
Тын-Дын © (2008-07-28 09:24) [9]
> Anatoly Podgoretsky © (28.07.08 01:07) [7]
> Тын-Дын © (28.07.08 00:41) [5] Побочный эффект - изменение
> S
У меня не меняется.function W2D(const s: String): String;
begin
Result := s;
if Result<>"" then CharToOem(PChar(Result),PChar(Result));
end;
procedure TForm1.Button1Click(Sender: TObject);
var
s,s1: String;
begin
s := "абвг";
s1 := W2D(s);
Memo1.Lines.Add(s);
Memo1.Lines.Add(s1);
end;
> Loginov Dmitry © (28.07.08 08:03) [8]
> > тьфу, не то написал.[4] правильнее было :))
Пока не вижу, что правильнее-)
← →
Slym © (2008-07-28 10:25) [10]вариант Тын-Дын © (28.07.08 0:41) [5] на псевдокоде:
Выделить память под Result
Скопировать в Result содержимое S
Перекодировать из Result в Result
вариант Amoeba © (28.07.08 1:01) [6] на псевдокоде:Выделить память под Result
Перекодировать из S в Result
Как видим на 1 операцию меньше, а при "увиличении" на 1 операцию ЧТЕНИЯ памяти и 1 операцию ЗАПИСИ в память. Работа с памятью не такая быстраю как многим кажется
← →
brother © (2008-07-28 10:26) [11]> Работа с памятью не такая быстраю как многим кажется
даже если текст будет метровый, это будет махом! поверь ;)
← →
Slym © (2008-07-28 10:37) [12]brother © (28.07.08 10:26) [11]
при частоте в гигагерцы длительность операции в секундах не измеряют...
в тиках посчитай... 1. латентность не нулевая, 2. на многоCPU системах может блокироваться память
← →
Loginov Dmitry © (2008-07-28 13:38) [13]
> Пока не вижу, что правильнее-)
UniqueString(S) сделай
← →
Тын-Дын © (2008-07-28 14:32) [14]
> Loginov Dmitry © (28.07.08 13:38) [13]
> > Пока не вижу, что правильнее-)UniqueString(S) сделай
> Anatoly Podgoretsky © (28.07.08 01:07) [7]
Теперь вижу-)
Надо же, как можно наткнуться неожиданно на грабли.
← →
Anatoly Podgoretsky © (2008-07-28 14:33) [15]> Тын-Дын (28.07.2008 14:32:14) [14]
Кажется это ты ткнул в этот побочный эффект несколько лет назад?
← →
Тын-Дын © (2008-07-28 14:47) [16]
> Anatoly Podgoretsky © (28.07.08 14:33) [15]
Может быть. И сам же забыл давно.
← →
Anatoly Podgoretsky © (2008-07-28 15:20) [17]> Тын-Дын (28.07.2008 14:47:16) [16]
Зато я помню, я все помню.
← →
Anatoly Podgoretsky © (2008-07-28 15:22) [18]Тонкостей только две.
1. побочное изменение оригинал
2. и AV при нулевой длине.
← →
Тын-Дын © (2008-07-28 15:35) [19]
> Anatoly Podgoretsky © (28.07.08 15:20) [17]
> > Тын-Дын (28.07.2008 14:47:16) [16]Зато я помню, я все
> помню.
Вот память!
← →
Anatoly Podgoretsky © (2008-07-28 15:40) [20]> Тын-Дын (28.07.2008 15:35:19) [19]
Ну еще бы не помнить такое, когда неприятно было, что данные портились непонятно почему :-)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.09.07;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.005 c