21

Re: Робота зі словами, допоможіть відлагодити будь-ласка..

Мелісо, а логіку мені поясніть, будь-ласка, бо я не дуже у паскалі розбираюся:
Чому ви намагаєтеся водночас читати з файлу та писати з нього? Припустимо, ви хочете перезаписати кожен рядок, але ж тут виходить, що читаєте ви один, а затираєте інший... Не простіше в інший файл спрямувати запис?

З.І: і перевірте у файла галочку "тільки для читання" (точніше, її відсутність), а також щоб файл ніде не був відкритий у цей момент.

22

Re: Робота зі словами, допоможіть відлагодити будь-ласка..

Меліса написав:
Program lab8;
var f: text;
    s, s1: string;
procedure algoritm(s:string; var s1:string);
   var t: string;
   begin
   t:=copy(s,1,pos(s,' ')-1);
   delete(s,1,pos(s,' '));
   if length (t) > 9 then s1:=s1+t + '';
   end;
  begin
  assign (f,'C:\file.txt'); reset(f); rewrite(f);
  while not eof(f) do begin
                      readln (f,s);
                      algoritm (s,s1);
                      writeln (f,s1);
                      end;
   close(f);
   END.

{При компілюванні вибиває помилку: File not found - тобто файл не знайдено, але шлях я ніби вірно задала, не знаю в чому проблема}

Bartash: код варто брати у теги [ code ] :).

Бачу слово "чергувати" та словосполучення "лише писати" і "лише для запису" не були зрозумілі, тож поясню простіше. В Pascal файл може перебувати лиш в режимі "лише читання" або "лише запис". Тож перед операціями читання переводите в режим "читати" а перед записом до нього "писати".. тож відповідно одночасно в обох режимах файл не може перебувати. Тому строки:

reset(f); 
rewrite(f);

знаходяться у невірному місці, правильніше має бути:

Program lab8;
var f: text;
    s, s1: string;
procedure algoritm(s:string; var s1:string);
   var t: string;
   begin
   t:=copy(s,1,pos(s,' ')-1);
   delete(s,1,pos(s,' '));
   if length (t) > 9 then s1:=s1+t + '';
   end;
  begin
  assign (f,'C:\file.txt');  
  while not eof(f) do begin
                      reset(f); {Відкриваємо файл у режимі "лише для читання"}
                      readln (f,s); {Читаємо з нього}
                      algoritm (s,s1);
                      rewrite(f); {Відкриваємо файл у режимі "лише для запису" }
                      writeln (f,s1); {Пишемо до нього}
                      end;
   close(f);
   END.
Подякували: Torbins, Меліса3

23

Re: Робота зі словами, допоможіть відлагодити будь-ласка..

Меліса написав:

koala, так, без прихованого розширення
файл на диску є, але пустий

Тоді ще таке питання: а як ви запускаєте свій TruboPascacal? Не через DosBox часом?

Подякували: Torbins, Меліса2

24

Re: Робота зі словами, допоможіть відлагодити будь-ласка..

Якщо працюєте на XP без прав адміністратора, або на Сімці з увімкненим UAC-ом, то диск С буде захищений від запису. Перемістіть файл на інший диск.

Подякували: Меліса1

25

Re: Робота зі словами, допоможіть відлагодити будь-ласка..

Torbins написав:

Якщо працюєте на XP без прав адміністратора, або на Сімці з увімкненим UAC-ом, то диск С буде захищений від запису. Перемістіть файл на інший диск.

Нам File not found, а не помилка читання/запису.

Подякували: Меліса1

26

Re: Робота зі словами, допоможіть відлагодити будь-ласка..

koala
Перечитайте два останні повідомлення на попередній сторінці.

Подякували: koala1

27

Re: Робота зі словами, допоможіть відлагодити будь-ласка..

Всім дуже вдячна!))
Справді допомогли розібратись! Дякую :)
P.S. ОСОБЛИВА ПОДЯКА, Віктору звісно :)

Подякували: koala1