![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
проблема перевода DOS-Win кодировки
R.O.O.T © (2007-07-27 16:12:00)вот код
str2:=TStringList.Create;
str3:=TStringList.Create;
for I := 0 to Memo1.Lines.Count - 1 do
str2.Add(Memo1.Lines.Strings[i]);
for i := 0 to str2.Count-1 do
begin
Src:=PChar(str2.Strings[i]);
OemToChar(Src, Str);
str3.Add(StrPas(Str));
end;
for I := 0 to str3.Count - 1 do
Memo1.Lines.Add(str3.Strings[i]);
str2.Free;
str3.Free;
исполняется без ошибок
после выхода из процедуры появляется ошибка
Access violation at address 2020208D. Read of address 2020208D
в процессие отладки код выпаолняется без ошибок
по выходу из процедуры (end) ошибка появляется что может быть?
Игорь Шевченко (2007-07-27 16:53:00) [1]umbra © (27.07.07 16:39) [10]
> if str2[i] <> "" then
А это зачем ?
r.o.o.t (2007-07-27 16:46:00) [2]все спасб. сделал по другому разобрался
umbra (2007-07-27 16:39:00) [3]а зачем вообще два стринглиста создавать?
str2 := TStringList.Create;
str2.AddStrings(Memo1.Lines);
for i := 0 to str2.Count-1 do
if str2[i] <> "" then
Memo1.Lines.Add(OemToChar(PChar(str2[i], PChar(str2[i])))
else
Memo1.Lines.Add('');
str2.Free;
r.o.o.t (2007-07-27 16:38:00) [4]непомагает
clickmaker (2007-07-27 16:33:00) [5]
> [7] r.o.o.t © (27.07.07 16:30)
GetMem, AllocMem например
или заменить тип на string, SetLength, а потом PChar()
r.o.o.t (2007-07-27 16:30:00) [6]str изменил на str00
как выделить память?
clickmaker (2007-07-27 16:28:00) [7]
> [3] r.o.o.t © (27.07.07 16:24)
> Src, Str :PChar;
и где выделение памяти под Str?
к тому же Str - зарезервированное слово, compiler-magic. Не рекомендуется такие слова юзать, чтоб не ухудшать читаемость кода
umbra (2007-07-27 16:27:00) [8]а как Str инициализируется?
r.o.o.t (2007-07-27 16:25:00) [9]возможно есть
но ошибка наступает и без использование StringList
я думаю что то в функции OemToChar
r.o.o.t (2007-07-27 16:24:00) [10]Src, Str :PChar;
str1 :String;
str2 :TStringList;
str3 :TStringList;
i :integer;
clickmaker (2007-07-27 16:20:00) [11]
> OemToChar(Src, Str);
а что такое Str?
umbra (2007-07-27 16:14:00) [12]в стринглисте есть пустые строки.