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

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

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

2 страниц V < 1 2  
 Ответить  Открыть новую тему 
> Задача по файлам, Помогите исправить
сообщение
Сообщение #21


Новичок
*

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

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


а можно узнать на какой файл он будет ссылаться? и слово у меня не обязательно из 5 букв. а из неизвестного кол-ва, это строка из 5 слов или более

Сообщение отредактировано: mafia1232 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #22


Perl. Just code it!
******

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

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


ну я же говрю, сначала просматриваешь каждую строку, и проверяешь сколько в ней слов, да если они у тебя только пробелами разделены, то можешь удалить из нее лишние пробелы, а потом посчтитать кол-во оставшихся, если их 4, то в троке 5 слов, или просто посчитать колво слов, если не понял как это у меня в программе делается, пойди посмотри в FAQ.

лишние - несколько идущих подрят, а ткаже пробел в конце и в начале, если они есть, но это полюбому извращение, так что просто считай кол-во слов, если 5 то с конца строки удаляй 2 и все.

Сообщение отредактировано: klem4 -


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #23


Новичок
*

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

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


Прога должна файл txt просматривать и просматривать каждую строку. если строка из 5 слов то она должна удалить 4 и 5 слова, а если строка больше или
меньше то не трогать. ответ должен быть записан в другой txt файл

Сообщение отредактировано: mafia1232 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #24


Perl. Just code it!
******

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

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


я не пойму, тебе всю программу написать ? я помойму все объяснил как делать blink.gif

Открываешь файл
береш строку
считаешт кол-во слов в строке, если ==5 то удаляешь с конца 2 слова иначе ничего не делаешь.

какой из пунктов не можешь реализовать ?

Сообщение отредактировано: klem4 -


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #25


Новичок
*

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

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


получилось так , но явно где-то ошибка. она делает файл чистка чистым полностью.
program p11;
uses crt;
var
   f1,f2:text;
   s:string;
   i,bword,count,count1:integer;

Begin
   clrscr;
Assign (f1,'z5.txt');
reset(f1);
Assign(f2,'chistka.txt');
Rewrite(f2);
While not eof(f1) do
      begin

   readln(f1,s);
   i:=1;
   count:=0;
   while i<=length(s) do
    begin
       while(i<=length(s))and(s[i]=#32) do
        inc(i);
       if i<=length(s) then
        begin
           inc(count);
           bword:=i;
           count1:=0;
           while(i<=length(s))and(not(s[i]=#32)) do
            begin
               inc(i);
               inc(count1);
            end;
           if ((count=4)or(count=5))and(count1=5) then
            begin
               delete(s,bword,i-bword);
               i:=bword;
            end
        end;
    end;
end;
    writeln(f2,s);
    readln;

end.



Сообщение отредактировано: mafia1232 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #26


Perl. Just code it!
******

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

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


не уверен что отрабатывает полностью правильно, но что-то в этом духе :
надеюсь поймешь.

program p11;
uses crt;
var
   f1,f2:text;
   s:string;
   i,bword,count,count1:integer;

Begin
   clrscr;
   Assign (f1,'z5.txt');
   reset(f1);
   Assign(f2,'chistka.txt');
   Rewrite(f2);
   While not eof(f1) do
    begin
       readln(f1,s);
       i:=1;
       count:=0;
       while i<=length(s) do
        begin
           while(i<=length(s))and(s[i]=#32) do
            inc(i);
           inc(count);
           if i<=length(s) then
           begin
               while(i<=length(s))and(not(s[i]=#32)) do
                inc(i);
           end;
        end;

    if count=5 then
     begin
        count:=0;
        i:=length(s);
        repeat
           bword:=i;
           while (s[i]<>#32) do dec(i);
           delete(s,i,bword-i+1);
           inc(count);
           while (s[i]=#32) do dec(i);
        until count=2;
        writeln(f2,s);
     end;
    end;

    close(f1);
    close(f2);

    readln;
end.




--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #27


Новичок
*

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

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


я , наверное, тормоз. почему файл чистка пустой получается если исходный txt такой (sasa ftt ewrw werwe erter
ewrwe wrr wert qweqw
asda asdas adsda asdas asdas asdas )?


ответ такой должен быть
(sasa ftt ewrw
ewrwe wrr wert qweqw
asda asdas adsda asdas asdas asdas )

Сообщение отредактировано: mafia1232 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #28


Perl. Just code it!
******

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

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


проверь так, кое-что изменил :

program p11;
uses crt;
var
   f1,f2:text;
   s:string;
   i,bword,count,count1:integer;

Begin
   clrscr;
   Assign (f1,'z5.txt');
   reset(f1);
   Assign(f2,'chistka.txt');
   Rewrite(f2);
   While not eof(f1) do
    begin
       readln(f1,s);
       i:=1;
       count:=0;
       while i<=length(s) do
        begin
           while(i<=length(s))and(s[i]=#32) do
            inc(i);
           if i<=length(s) then
           begin
              inc(count);
               while(i<=length(s))and(not(s[i]=#32)) do
                inc(i);
           end;
        end;
       writeln('count=',count);

    if count=5 then
     begin
        count:=0;
        i:=1;
        while(i<=length(s)) do
         begin
            while(i<=length(s))and(s[i]=#32) do
             inc(i);
            if i<=length(s) then
             begin
                bword:=i;
                inc(count);
                while(i<=length(s))and(s[i]<>#32) do
                 inc(i);
                if (count=4)or(count=5) then
                 begin
                    delete(s,bword,i-bword);
                    i:=bword;
                 end;
             end;
          end;
         end;
     writeln(f2,s);
    end;


    close(f1);
    close(f2);

    readln;
end.




Сообщение отредактировано: klem4 -


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #29


Новичок
*

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

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


круто работает! :molitva: klem4
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #30


Новичок
*

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

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


Значит так, дан файл f компонентами которого являются целые числа. Файл создается с такими компонентами y = -5 + random (10). Сформировать новый файл g следующим образом:чтоб перед каждым положительным числом ставился "0" (без ковычек):
Код

Program p3_3;
uses crt;

const
 n = 20;

var
 f_in, f_out: text;
 i, y,z, zeroes: integer;

begin
 clrscr;
 assign(f_in,'byka.txt');
 rewrite(f_in);
 for i := 1 to n do begin
   y := -5 + random(10);
   write(f_in, y, ' ')
 end;
 assign(f_out,'byka1.txt');
 rewrite(f_out);
 reset(f_in); zeroes := 0;
 while not seekeof(f_in) do begin
   read(f_in, y);
   if y > 0 then write(f_out, z, ' ', y, ' ')
   else if y = 0 then inc(zeroes);
 end;
   y := 0;
 for i := 1 to zeroes do
   write(f_out, y, ' ');
  reset(f_in);
 while not seekeof(f_in) do begin
   read(f_in, y);
   if y < 0 then write(f_out, y, ' ')
 end;
 close(f_out);
 close(f_in);
end.

правильно ли она работает?

Сообщение отредактировано: mafia1232 -


Прикрепленные файлы
Прикрепленный файл  33.PAS ( 709 байт ) Кол-во скачиваний: 225
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #31


Гость






Цитата(mafia1232 @ 21.06.05 16:54)
дан файл f компонентами которого являются целые числа. Файл создается с такими компонентами y = -5 + random (10). Сформировать новый файл g следующим образом:чтоб перед каждым положительным числом ставился "0" (без ковычек):

Может и правильно, но она выполняет много лишнего ... Для правильной работы программы достаточно вот этого:
uses crt;
const
  n = 20;
  zero = 0;

var
  f_in, f_out: text;
  i, y: integer;

begin
  clrscr;
  assign(f_in,'byka.txt');
  rewrite(f_in);
  for i := 1 to n do begin
    y := -5 + random(10);
    write(f_in, y, ' ')
  end;
  assign(f_out,'byka1.txt');
  rewrite(f_out);
  reset(f_in);
  while not seekeof(f_in) do begin
    read(f_in, y);
    if y > 0 then write(f_out, zero, ' ');
    write(f_out, y, ' ');
  end;
  close(f_out);
  close(f_in);
end.
 К началу страницы 
+ Ответить 

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

 



- Текстовая версия 22.04.2025 5:02
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name