![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как в строке отрезать последние три символа?
Mark86rus © (2006-04-28 21:30:00)В общем прога забирает инфу с сайта ! но после вывода ее в мемо в конце предложения появляются три знака "ентер" (маленькие квадратики)! Как их отрезать?
///-----вот тело проги
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());
memo1.Text:=KoiToWin(memo1.Text);
TcpClient1.Disconnect;
end;
end.
Asail (2006-04-30 01:01:00) [1]
> Попробуй сам и поймешь, что разницы не произошло!
См. свой собственный пост:
> Mark86rus © (29.04.06 16:10) [13]
> 0 стоит потому, что мне не надо вырезать сначала ни одного
> символа! Если ставить любое другое значение больше 0то
> просто срезаетсятекст в начале предложения!
Так как-же все-таки при 1-це "срежется" первый символ или нет?.. Ты уж опредились - есть разница или нет.
> begin...end © (29.04.06 20:50) [22]
> > Mark86rus
>
> Хам.
А вообще, согласен
ЛшдлуттнСфе (2006-04-29 20:52:00) [2]procedure TForm1.Timer1Timer(Sender: TObject);
begin
TcpClient1.connect;
memo1.Lines.Clear;
memo1.Lines.Add(TcpClient1.Receiveln());
memo1.Text:=KoiToWin(memo1.Text);
TcpClient1.Disconnect;
end;
begin...end (2006-04-29 20:50:00) [3]> Mark86rus
Хам.
Mark86rus (2006-04-29 20:46:00) [4]Опять "умники" повылазили! Попробуй сам и поймешь, что разницы не произошло!
Есть предложение другого кода? пиши, буду рад, а если решил мозг компассировать, то не в ту тему включился!
antonn (2006-04-29 18:26:00) [5]Mark86rus © (29.04.06 16:54) [18]
0 или 1 я не увидел разницы в полученных данных! тоесть он все принял нормально!
ну не смеши народ...
Asail (2006-04-29 17:23:00) [6]
> тоесть он все принял нормально!
А он, в данном случаеи -100 принял-бы нормально :-).
> кроме как прокоментировать что то ненужное прошу не лезть
> на эту тему
На сколько я видел, ИМХО, все коментарии относились к делу...
Mark86rus (2006-04-29 16:54:00) [7]
> 1. Не 0, а 1 (это правильнее).
0 или 1 я не увидел разницы в полученных данных! тоесть он все принял нормально!
разницу я знаю не первый год!
А насчет того чтобы развивать эту тему, то да без проблем! Оставляйте предложения, коды! А "умников", которые кроме как прокоментировать что то ненужное прошу не лезть на эту тему
Asail (2006-04-29 16:45:00) [8]
> Вместо развития уже оконченной темы , лучше бы другим помогали!
Эту ветку читают и другие, так-что желательно, что-бы они не повторяли чужие ошибки.
Asail (2006-04-29 16:44:00) [9]Правильно, кроме двух моментов:
1. Не 0, а 1 (это правильнее). Номера символов в строке начинаются с 1, а не с 0.
2. Копирование из текста определенного значения не вырезка, а копирование (т.к. не изменяется исходная строка). Разницу между виндовскими Copy и Cut улавливаешь?
Mark86rus (2006-04-29 16:24:00) [10]
> Zeqfreed
копирование из текста определенного значения разве не вырезка?!
вот и именно то, что я хотел скопировать тескт без последних символов!
Zeqfreed (2006-04-29 16:16:00) [11][13] Mark86rus © (29.04.06 16:10)
> Ты так и не понял!
Copy (даже если судить по названию и мыслить логически) копируетподстроку из строки, а не вырезаетчто бы то ни было. Второй параметр — номер символа (начиная с 1) в строке, начиная с которого будет произведено копирование подстроки. Третий — кол-во символов в копируемой подстроке.
Mark86rus (2006-04-29 16:10:00) [12]
> Похоже, автор считает, что при нуле происходит копирование,
> иначе - вырезание.
Ты так и не понял! 0 стоит потому, что мне не надо вырезать сначала ни одного символа! Если ставить любое другое значение больше 0 то просто срезается текст в начале предложения!
Mark86rus (2006-04-29 15:57:00) [13]Какие же вы самовлюбленные!
Вместо развития уже оконченной темы , лучше бы другим помогали!
Anatoly Podgoretsky (2006-04-29 15:24:00) [14]F1 не поможет
Плохиш (2006-04-29 11:39:00) [15]
> Mark86rus © (29.04.06 03:11) [8]
> Терь понял!? Или ты решил меня проверить???
По предмету 2.
PS. Нумерация в строках начинается с 1, а не с 0.
Loginov Dmitry (2006-04-29 08:35:00) [16]Похоже, автор считает, что при нуле происходит копирование, иначе - вырезание.
А F1 помог бы, ИМХО.
Mark86rus (2006-04-29 03:11:00) [17]написав то что я хотел срезать 3 ентера с конца я просто не посчитал нужным писать что там есть еще 2 пробела! Ну сам посуди: если ты понял или подсказали как срезать одно значение, то насколько надо быть тупым чтобы не понять как срезать больше значений!? а срезать с начала строки можно, если только она не изменяется. Если она меняется , то подогнав срезку под одно значение , невозможно быть уверенным, что новое значение будет такой же длинны!
Терь понял!? Или ты решил меня проверить???
Германн (2006-04-29 02:46:00) [18]
> терь ты понял, что твой метод тыка тут не катит!!!
Не, не понял. :-(
> 1) 0-потому что в начеле предложения мне ничего вырезать
> не надо.
Слава богу! А то ты там бы так "навырезовал"!
> 2) -5-потому что от исходного текста отрежет 2 последних
> пробела и ентеры от которых и хотел избавиться!
И как это совместить с твоими же словами
> где -5 в моем случае срезание с конца 3-х "ентеров"!!!
Mark86rus (2006-04-29 02:31:00) [19]да нет не метод "тыка" как ты это называешь! Тебе что объяснить почему 0 и 5 стоит?
1) 0-потому что в начеле предложения мне ничего вырезать не надо.
2) -5-потому что от исходного текста отрежет 2 последних пробела и ентеры от которых и хотел избавиться!
терь ты понял, что твой метод тыка тут не катит!!!
Германн (2006-04-29 01:38:00) [20]
> Mark86rus © (29.04.06 00:37) [4]
>
> Все сделал! вот такую строку надо было
>
> Memo1.Text:=copy(memo1.text, 0, length(memo1.text)- 5)
Да уж! Метод "тыка" процветает.
Тут уж и ноль и пять!
Ну а скорее всего - двойка по предмету. ИМХО.