Форум: "Начинающим";
Текущий архив: 2006.05.21;
Скачать: [xml.tar.bz2];
ВнизКак при перекодировке из Win 1251 в KOI8 избавиться от значений? Найти похожие ветки
← →
Mark86rus © (2006-04-28 17:55) [0]дело состоит вот в чем! Я при помощи TcpClient1 забираю информацию с сервера, она на нем хранится в кодировке Win 1251! Перекодировку в KOI8 я сделал, но в конце текста есть три знака ентера! Внимание вопрос: "Как избаиться от этих ентеров???"
← →
AlexanderMS © (2006-04-28 18:38) [1]
> "Как избаиться от этих ентеров???"
Каких "ентеров"?
Просто "#13" или с переводом каретки ("#13#10")?
В любом случае так:Delete(строка, начало удаления, кол-во символов).
Для первого:Delete(строка, length(строка) - 3, 3)
Для второго:Delete(строка, length(строка) - 6, 6)
← →
Desdechado © (2006-04-28 18:57) [2]Trim до перекодировки
← →
Mark86rus © (2006-04-28 19:11) [3]где именно это выполнить?
//--------------------------------
type
TConvertChars = array[ #128..#255] of char;
TForm1 = class(TForm)
TcpClient1: TTcpClient;
Memo1: TMemo;
Timer1: TTimer;
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
const
Koi: Array[0..66] of Char = ("T", "Ё", "ё", "А", "Б", "В", "Г", "Д", "Е", "Ж",
"З", "И", "Й", "К", "Л", "М", "Н", "О", "П", "Р",
"С", "Т", "У", "Ф", "Х", "Ц", "Ч", "Ш", "Щ", "Ъ",
"Ы", "Ь", "Э", "Ю", "Я", "а", "б", "в", "г", "д",
"е", "ж", "з", "и", "й", "к", "л", "м", "н", "о",
"п", "р", "с", "т", "у", "ф", "х", "ц", "ч", "ш",
"щ", "ъ", "ы", "ь", "э", "ю", "я");
Win: Array[0..66] of Char = ("ё", "Ё", "T", "ю", "а", "б", "ц", "д", "е", "ф",
"г", "х", "и", "й", "к", "л", "м", "н", "о", "п",
"я", "р", "с", "т", "у", "ж", "в", "ь", "ы", "з",
"ш", "э", "щ", "ч", "ъ", "Ю", "А", "Б", "Ц", "Д",
"Е", "Ф", "Г", "Х", "И", "Й", "К", "Л", "М", "Н",
"О", "П", "Я", "Р", "С", "Т", "У", "Ж", "В", "Ь",
"Ы", "З", "Ш", "Э", "Щ", "Ч", "Ъ");
implementation
{$R *.dfm}
Function KoiToWin(Str: string): string;
var
i, j, Index: Integer;
Begin
Result := "";
For i := 1 to Length(Str) do
Begin
Index := -1;
For j := Low(Win) to High(Win) do
If Koi[j] = Str[i] Then
Begin
Index := j;
Break;
End;
If Index = -1
Then Result := Result + Str[i]
Else Result := Result + Win[Index];
End;
End;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
TcpClient1.connect;
memo1.Lines.Clear;
memo1.Lines.Add(TcpClient1.Receiveln(#13#10));
memo1.Text:=KoiToWin(memo1.Text);
TcpClient1.Disconnect;
end;
end.
← →
Mark86rus © (2006-04-29 00:36) [4]Все сделал! вот такую строку надо было
Memo1.Text:=copy(memo1.text, 0, length(memo1.text)-5);
,где -5 в моем случае срезание с конца 3-х "ентеров"!!!
всем кто помогал спасибо!
тему мона закрывать!
← →
Desdechado © (2006-04-29 20:43) [5]зашибись...
← →
ЛшдлуттнСфе (2006-04-29 20:50) [6]
> [5] Desdechado © (29.04.06 20:43)
и не говори... особенно понравилось бесконечное конвертирование всего мемо, вместо конвертирования лишь новой строки...
← →
Mark86rus © (2006-04-29 21:04) [7]Ладно ладно уговорили!
memo1.Text:=KoiToWin(memo1.Lines.Strings[0]);
так вся строчка и обновляется!
← →
ЛшдлуттнСфе (2006-04-29 21:13) [8]что в лоб, что по лбу...
← →
Mark86rus © (2006-04-29 21:22) [9]раз такие "умные" тоды свои коды прилагайти, а то воздух портить много ума не надо!
← →
KilkennyCaT © (2006-04-29 21:26) [10]кавычки лишние, а вот пожалуйста нехватает...
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.05.21;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.013 c