IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Рабоат с файлами и строками, помогите доработать
DimaD
сообщение 20.12.2005 1:04
Сообщение #1





Группа: Пользователи
Сообщений: 9
Пол: Мужской
Реальное имя: Дмитрий

Репутация: -  0  +


Программа дожна удалять все лишние пробелы и однобуквенные слова. Пробелы удаляет, а вот однобуквенные слова не все.
Пример:
исходный файл:
de f f fg f gr
dfff ji oof l l
полученый:
de fg gr
dfff ji oof l

Как сделать чтобы удалялось однобуквенное слово в конце строки?

var
f1,f2: TextFile;
p: Byte;
St,TSt,S: String;
i: Integer;
begin
Assign(f1, 'Fi.txt'); {Устанавливается путь к файлу}
Reset(f1); {Открытие файла}
Assign(f2, 'Fo.txt'); {Устанавливается путь к файлу}
Rewrite(f2); {Создание файла}
while not EOF(f1) do
begin
Readln(f1, TSt); {Читаем строку из файла}
for i:=1 to Length(TSt) do
begin
repeat
p:=Pos(' ',TSt);
if p>0 then Delete(TSt,p,1);
until p=0;
end;
for i:=1 to Length(TSt) do
begin
if TSt[i]<>' ' then
begin
St:=St+TSt[i];
end
else
if Length(St)<>1 then
begin
S:=S+' '+St;
St:='';
end
else St:='';
end;
S:=S+' '+St;
Writeln(f2, S);
S:='';
St:='';
end;
CloseFile(f1); {Oкончание процедур работы с файлами (закрытие файла)}
CloseFile(f2); {Oкончание процедур работы с файлами (закрытие файла)}

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 2)
volvo
сообщение 20.12.2005 1:19
Сообщение #2


Гость






   S:=S+' '+St;
Writeln(f2, S);
заменить на
   If length(St) > 1 Then S:=S+' '+St;
Writeln(f2, S);
 К началу страницы 
+ Ответить 
DimaD
сообщение 20.12.2005 1:30
Сообщение #3





Группа: Пользователи
Сообщений: 9
Пол: Мужской
Реальное имя: Дмитрий

Репутация: -  0  +


Огромное спасибо!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 18.07.2025 13:58
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"