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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2009, 23:35   #1
Nikolai17
Пользователь
 
Регистрация: 17.10.2009
Сообщений: 20
Сообщение Работа со строками и текстовыми файлами

Удалить из строки третье слово после первой запятой

находим первую запятую

наработочка

Код:
var s,s1:string;
begin
clrscr;
repeat
writeln('Vvedite stroku:');
readln(s);
until pos(',',s)>0; {проверяем ввод, чтоб была запятая}
s:=s+',';{добавляем запятую в конец строки}
while pos(',,',s)>0 do
delete(s, pos(',,',s),1);{удаляем лишние запятые, оставляем по одной}
while pos(',',s)>0 do {пока в строке есть запятые}
  begin
    writeln(copy(s,1,pos(',',s)-1));{выводим подстроки до запятой}
    delete(s,1,pos(',',s));{удаляем их вместе с запятой}
  end;
readln
end.
как наити второй пробел после запятой?
Код:
:confused:
Nikolai17 вне форума Ответить с цитированием
Старый 12.12.2009, 00:48   #2
ArtInt
Форумчанин
 
Аватар для ArtInt
 
Регистрация: 06.03.2009
Сообщений: 583
По умолчанию

Насколько я помню для таких задач удобнее использовать конечные автоматы.
Создать в каких состояних может находиться автомат и делать выбор. Но наверное также придется делать отдельные процедуры для удобства чтения кода.
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.

Последний раз редактировалось ArtInt; 12.12.2009 в 00:52.
ArtInt вне форума Ответить с цитированием
Старый 12.12.2009, 12:26   #3
dr.Chas
***
Участник клуба
 
Аватар для dr.Chas
 
Регистрация: 30.07.2007
Сообщений: 1,162
По умолчанию

Код:
var s, slovo : string;
    i, j : integer;
begin
  writeln('Vvedite stroky: ');
  readln(s);
  i:=pos(',', s)+2;  j:=0;
  while i<>length(s) do
  begin
    if s[i] in ['a'..'z','A'..'Z','1'..'9'] then slovo:=slovo+s[i]
    else begin
      inc(j);
      if j=3 then
      begin
        Delete(s, pos(slovo, s), length(slovo));
        break;
      end;
      slovo:='';
    end;
    inc(i);
  end;
end.
dr.Chas вне форума Ответить с цитированием
Старый 13.12.2009, 14:22   #4
Nikolai17
Пользователь
 
Регистрация: 17.10.2009
Сообщений: 20
По умолчанию

бредятина...не пашет

всё я сделал тема закрыта

кому нужен код то

Код:
program er1;
uses crt;
 var
   s,s1:string;
   k,n:integer;
begin
  writeln('Enter s');
  readln(s);
s1:=s;
begin



delete(s,1,pos(',',s)+1);

delete(s,1,pos(' ',s));



delete(s,1,pos(' ',s));

n:=length(s);

writeln('Tretbe slovo ',s);
k:=pos(s,s1);

writeln('Pozicia pervogo simvola 3 slova := ',k);
delete(s1,k,n);
writeln(s1);
end;
readkey;
end.

Последний раз редактировалось Nikolai17; 13.12.2009 в 17:14.
Nikolai17 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с текстовыми файлами Bytas Общие вопросы C/C++ 1 01.12.2009 22:39
Работа с текстовыми файлами hascker Паскаль, Turbo Pascal, PascalABC.NET 6 14.09.2009 19:01
работа с текстовыми файлами Bayazet Общие вопросы Delphi 10 09.12.2008 18:39
Работа с Текстовыми файлами wwww Общие вопросы Delphi 5 29.10.2007 11:17
Работа с текстовыми файлами DartMrakkk Общие вопросы Delphi 3 14.07.2007 16:52