Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.11.2010, 19:44   #1
Яська
Пользователь
 
Регистрация: 09.01.2009
Сообщений: 50
По умолчанию обработка текстовых данных Delphi

Из строки удалить среднюю букву, если длина строки нечетная, иначе - удалить две средние буквы.

Вот то,что получилось у меня.И,к сожалению,не работает.Подскажите,где ошибка.


var str: string;
n:integer;
t:integer;
begin
str:=Memo1.Text;
n:=length(str);
t:=(n div 2); // номер элемента,с которого будем удалять
If (n mod 2)=0 then // проверка на чётность
delete(str,t,2) else delete (str,t,1);

end;
Яська вне форума Ответить с цитированием
Старый 25.11.2010, 19:57   #2
unbanned
Форумчанин
 
Аватар для unbanned
 
Регистрация: 23.11.2010
Сообщений: 530
По умолчанию

Цитата:
Сообщение от Яська Посмотреть сообщение
var
....
t:integer;
begin
.....
t:=(n div 2); // номер элемента,с которого будем удалять
.....
end;
ну допустим строка из 3х символов... 3 div 2 = 1... ну а надо то удалять со второго)))

предлагаю так
Код:
var str: string;
n:integer;
t:integer;
begin
str:=Memo1.Text;
n:=length(str);
t:=(n div 2); // номер элемента,с которого будем удалять
If (n mod 2)=0 then // проверка на чётность
delete(str,t,2) else delete (str,t+1,1);

end;

Последний раз редактировалось unbanned; 25.11.2010 в 20:02.
unbanned вне форума Ответить с цитированием
Старый 25.11.2010, 20:04   #3
skgwazap
Пользователь
 
Регистрация: 24.11.2010
Сообщений: 40
По умолчанию

Все работает практически правильно, только при нечетном количестве символов нужно удалять с t+1 позиции
Код:
var str: string;
     n:integer;
     t:integer;
begin
    str:=Memo1.Text;
    n:=length(str);
    t:=(n div 2); 
    If (n mod 2)=0 then 
        delete(str,t,2) else delete (str,t+1,1);
    ShowMessage(str);
end;
Текст в memo изменяться не будет, может это Вас смутило?
skgwazap вне форума Ответить с цитированием
Старый 25.11.2010, 20:05   #4
skgwazap
Пользователь
 
Регистрация: 24.11.2010
Сообщений: 40
По умолчанию

эх не успел
skgwazap вне форума Ответить с цитированием
Старый 25.11.2010, 20:19   #5
Яська
Пользователь
 
Регистрация: 09.01.2009
Сообщений: 50
По умолчанию

да,почему в мемо он не будет меняться?просто текст в мемо я вывожу из файла и результат мне потом нужно тоже сохранить в файл

Последний раз редактировалось Яська; 25.11.2010 в 20:25.
Яська вне форума Ответить с цитированием
Старый 25.11.2010, 20:27   #6
Яська
Пользователь
 
Регистрация: 09.01.2009
Сообщений: 50
По умолчанию

всё,спасибо,я догадалась)
Яська вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заказ. Обработка текстовых файлов (cvs). Delphi/Pascal Zalim Фриланс 8 25.11.2010 23:58
Обработка большого кол-ва текстовых данных (Excel 2010) motorway Microsoft Office Excel 9 27.03.2010 00:47
Обработка текстовых файлов Маринка777 Общие вопросы .NET 2 22.12.2009 17:37
Обработка символьных данных и текстовых файлов Skrip Общие вопросы C/C++ 7 17.06.2009 21:54
Обработка символьных данных и текстовых файлов Skrip Общие вопросы C/C++ 13 10.06.2009 20:51