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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.05.2010, 21:06   #1
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию Процедура с тремя параметрами, которая вызывается из дополнительного модуля

Подскажите, товарищи - где у меня ошибка. какой-то конфликт типов....много ошибок. Выручите !
Основной модуль :
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls , ochered ;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
type         
  pelement= ^telement;                 
  Telement= record
             infa: char;
             ukazatel:pelement;
            end;
var    f1,f2: textfile;
     simvol: char;
     a,b: string;
     uk,p,uk1: pelement;

begin
  a:='c:\files\f1.txt';
  b:= 'c:\files\f2.txt';
  AssignFile(f1,a);
  AssignFile(f2,b);
  reset(f1);
  rewrite(f2);
  uk:=nil;
  uk1:=nil;
  while eof(f1)=false do
  begin
    read(f1,simvol);
    if simvol in ['.',',',';','-','!','?',':'] then
    begin
      fgh(uk1,uk,simvol);
     { new(p);
      if uk<>nil  then
      uk^.ukazatel:=p
      else uk1:=p;
      p^.infa:=simvol;  // сохранем знаки
      uk:=p; }
    end
    else
      write(f2,simvol);
    if eoln(f1)=true then
    begin
      uk:=nil; // обрываем список
      while uk1<>nil do  // выводим знаки
      begin
        write(f2,uk1^.infa);
        uk1:=uk1^.ukazatel;
      end;
    end;
  end;
  CloseFile(f1);
  CloseFile(f2);

end;

end.
а вот Дополнительный кусок:
Код:
unit ochered;

interface
type
  pelement= ^telement;                 
  Telement= record
             infa: char;
             ukazatel:pelement;
            end;
procedure fgh(uk1,uk: pelement; simvol: char  );
implementation
procedure fgh(uk1,uk: pelement; simvol: char  );
var p: pelement;
begin
      new(p);
      if uk<>nil  then
      uk^.ukazatel:=p
      else uk1:=p;
      p^.infa:=simvol;  // сохранем знаки
      uk:=p;
end;

end.
Спасайте. (прикладываю неработающий архив. там то конфликт типов, то тип не определён...)
Вложения
Тип файла: zip 88.zip (30.6 Кб, 9 просмотров)
против абортов=за + жизнь;.фкн вгу;_______________________мойблг
vedro-compota вне форума Ответить с цитированием
Старый 03.05.2010, 00:08   #2
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию подскажите

как избавиться хотя б от несоответствия типа? пожалуйста))
против абортов=за + жизнь;.фкн вгу;_______________________мойблг
vedro-compota вне форума Ответить с цитированием
Старый 03.05.2010, 00:36   #3
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Несовсем понятно что делает ваша программа
Человек_Борща вне форума Ответить с цитированием
Старый 03.05.2010, 02:09   #4
RAZOR3
Пользователь
 
Регистрация: 25.04.2010
Сообщений: 38
По умолчанию

а если вот так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var    f1,f2: textfile;
     simvol: char;
     a,b: string;
     uk,p,uk1: pelement;
begin
  a:='c:\files\f1.txt';
  b:= 'c:\files\f2.txt';
  AssignFile(f1,a);
  AssignFile(f2,b);
  reset(f1);
  rewrite(f2);
  uk:=nil;
  uk1:=nil;
  while eof(f1)=false do
  begin
    read(f1,simvol);
    if simvol in ['.',',',';','-','!','?',':'] then
    begin
      fgh(uk1,uk,simvol);
     { new(p);
      if uk<>nil  then
      uk^.ukazatel:=p
      else uk1:=p;
      p^.infa:=simvol;  // сохранем знаки
      uk:=p; }
    end
    else
      write(f2,simvol);
    if eoln(f1)=true then
    begin
      uk:=nil; // обрываем список
      while uk1<>nil do  // выводим знаки
      begin
        write(f2,uk1^.infa);
        uk1:=uk1^.ukazatel;
      end;
    end;
  end;
  CloseFile(f1);
  CloseFile(f2);

end;
RAZOR3 вне форума Ответить с цитированием
Старый 03.05.2010, 08:36   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
vedro-compota
Ты в unit ochered; описал:
Цитата:
type
pelement= ^telement;
Telement= record
infa: char;
ukazatelelement;
end;
Теперь этот тип будет доступен и в других модулях, где используется этот, посему зачем ты в unit Unit1 переопределил
Цитата:
pelement= ^telement;
Telement= record
infa: char;
ukazatelelement;
end;
Вот тут то и может выпадать несоответствие типов (а может и прокатить), но в целом не стоит так делать. Убери этот тип из формы.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.05.2010, 09:47   #6
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию Верно))

Просто оставил глобальный тип в дополнительном модуле. Как вы и посоветовали ) Спасибо ))
----------------------------------
а так,вообще, (спрашивал Человек_Борща0))) программа моя переносит все знаки препинания в конец строки .
против абортов=за + жизнь;.фкн вгу;_______________________мойблг

Последний раз редактировалось vedro-compota; 03.05.2010 в 09:49.
vedro-compota вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вызов процедуры из дополнительного модуля vedro-compota Общие вопросы Delphi 23 25.04.2010 16:09
Не вызывается процедура. Что не так? KingMaker Общие вопросы Delphi 4 12.04.2009 00:59
процедура, которая будет что-то делать пока зажата клавиша пробел. Porkman Паскаль, Turbo Pascal, PascalABC.NET 4 14.12.2008 03:37
процедура, которая вычисляет объем шара motaro Паскаль, Turbo Pascal, PascalABC.NET 2 21.01.2008 19:22