![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
До компиляции проэкта создается файл "D:/test.txt" с произвольным текстом (для примера "saddasfadfadsfadf")
после выполнения Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
memo1.Lines.LoadFromFile('D:\test.txt');
end;как это исправить?? |
|
#2
|
|||
|
|||
|
Может быть файл был создан (напр., Блокнотом) в кодировке Unicode или что-то подобное.
|
|
#3
|
|||
|
|||
|
Цитата:
|
|
#4
|
|||
|
|||
|
Попробуй сделать перекодировку после того, как считаешь файл в memo
Код:
for I := 0 to Memo1.Lines.Count - 1 do memo1.Lines[i]:= dostowin(Memo1.Lines[i]) ; Есть такие функции Код:
Function dostowin(znak:string):string;
var
sd:LongInt;
m:integer;
sims:string[1];
sim: AnsiChar;
begin
result:='';
for m:=1 to length(znak) do begin
sims:=copy(znak,m,1);
(*{$H-}*)
sim:= ansichar(sims[1]);
sd:=ord(sim);
if (ord(sim)>=128) and (ord(sim)<=159) then
sd:=ord(sim)+64;
if (ord(sim)>=160) and (ord(sim)<=175) then
sd:=ord(sim)+64;
if (ord(sim)>=224) and (ord(sim)<=239) then
sd:=ord(sim)+16;
sim:= (AnsiChar(sd));
sims[1]:=sim;
znak:=copy(znak,1,m-1)+sims[1]+copy(znak,m+1,length(znak));
(*{$H+}*)
result:=znak;
end;
end;
Function wintodos(znak:string):string;
var
sd:LongInt;
m:integer;
sims:string[1];
sim:AnsiChar;
begin
for m:=1 to length(znak) do begin
sims:=copy(znak,m,1);
(*{$H-}*)
sim:=sims[1];
sd:=ord(sim);
if (ord(sim))=13 then
else
begin
if (ord(sim)>=192) and (ord(sim)<=223) then
sd:=ord(sim)-64;
if (ord(sim)>=224) and (ord(sim)<=239) then
sd:=ord(sim)-64;
if (ord(sim)>=240) and (ord(sim)<=255) then
sd:=ord(sim)-16;
sim:= AnsiChar(sd);
end;
sims[1]:=sim;
znak:=copy(znak,1,m-1)+sims[1]+copy(znak,m+1,length(znak));
(*{$H+}*)
result:=znak;
end;
end; |
|
#5
|
|||
|
|||
|
В этой теме выложен код, который умеет читать файлы в Win1251, UTF8 и Unicode (все через декодирование). К сожалению, определить, что у нас dos-кодировка, например, или если файл не соответствует определенной конвенции (в начале для UTF и Unicode файлов идет код кодировки) автоматически невозможно. Если у кого есть иджеи как это можно сделать, то велкам.
|