Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.05.21;
Скачать: CL | DM;

Вниз

Как при перекодировке из 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.033 c
15-1146148622
oldman
2006-04-27 18:37
2006.05.21
Праздник. так уж праздник... :(


2-1147001597
Windows
2006-05-07 15:33
2006.05.21
Отследить нажатие кнопки


2-1146234817
AlexanderMS
2006-04-28 18:33
2006.05.21
Удаление нескольких выбранных элементов в ListBox


2-1146410252
Kano
2006-04-30 19:17
2006.05.21
Ошибка при выполнении Insert


2-1147016485
AlexanderMS
2006-05-07 19:41
2006.05.21
Проблема с фокусом