Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> файл с массивом строк, помогите найти ошибку 
:(
    Опции темы
stuDEnto4ka
Дата 25.12.2008, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 25.12.2008

Репутация: нет
Всего: нет



хм, вот задачка, найдите, плиз ошибку, я ее мучаю уже несколько недель

Требование:
В программе описать массив строк. Исходный текст считать из файла, созданного в любом текстовом редакторе. Результат обработки вывести на экран, а так же в итоговый текстовый файл.

Задание:
Определить количество слов, поменять местами четные и нечетные слова.


Код

program pr6;
uses crt;

const p=3;
var o1,o2:text;
f:array[1..p] of string;
s,s1:string;
i,j,k,n,m1,m2,l1,l2:integer;
procedure invert(k,l:byte);
var i:byte;
    ch:char;
     b:boolean;
begin
   for i:=k to ((l+k) div 2) do
   begin
      ch:=s[i];
      s[i]:=s[l+k-i];
      s[l+k-i]:=ch;
   end;
end;

begin
clrscr;

assign(ff,'d:\o1.txt');

reset(ff);
j:=0;
  while not eoln(ff) do 
  begin j:=j+1;
    readln(ff,f[j]);writeln(f[j]);
  end;
close(ff);

reset(ff);
j:=0;
   while not eoln(ff) do 
   begin  j:=j+1;
     readln(ff,f[j]);
     i:=0;n:=0;
     m1:=1;m2:=1;l1:=1;l2:=1;
     while i<length(f[j]) do 
     begin
     i:=i+1;
     s:=copy(f[j],i,1);
     if (s[i]=' ')or(i=length(s)) then
repeat
                                                    if s[i+1]=' ' then
                                                       begin
                                                           delete(s,i,1);
                                                            k:=k-1;
                                                             b:=false;
                                                       end
                                                           else b:=true;
                                                  until b;
                                             end;


  begin
    n:=n+1;
    if n=1 then
    begin
      m2:=i-1;
      l1:=i+1
    end
    else
    begin
      n:=0;
      if i=length(s) then l2:=i else l2:=i-1;
      invert(m1,m2);invert(l1,l2);invert(m1,l2);
      m1:=i+1
    end
  end
end;

writeln(f[j]);
close(ff);

assign(oo,'d:\o2.txt');
rewrite(oo);
for j:=1 to 3 do
writeln(oo,f[j]);close(oo);
end.

PM MAIL   Вверх
hot_man
Дата 25.12.2008, 19:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 5.12.2007
Где: Россия, Тольятти

Репутация: нет
Всего: нет



итак во-первых

var o1,o2:text; 

нужно заменить на 

var ff,oo:text;

так как о1 и о2 название файлов, а не их переменная!!!!

во вторых

b:boolean;

нужно вынести из процедуры в основной var
только после этого прога запустится!!!
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.1319 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.