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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.12.2011, 19:36   #1
Nikitqa
Новичок
Джуниор
 
Регистрация: 29.12.2011
Сообщений: 1
По умолчанию Создать очередь, информационные поля которой содержат числа из текстового файла file1.txt. (в делфи)

Доброго времени суток! Задача: Создать очередь, информационные поля которой содержат числа из текстового файла file1.txt. Вставить новый элемент с информационным полем d после 9ого элемента списка. Вот исходник добовляющий элемент после 1ого элемента:
Код:
unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;
type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Label1: TLabel;
    Button3: TButton;
    LabeledEdit1: TLabeledEdit;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    end;
type   link = ^elem;
         elem = record
                     val : integer;
                     next : link
                     end;
var
  Form1: TForm1; L:link;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var p, q : link; f : textfile; i : byte;
begin
assignfile(f, 'F:\тип учеба\2 курс\П.о\очередь\file1.txt');  reset(f);
new(L);
read(f,  L.val);   
p:=L;                   
begin
new(q);  read(f,  q.val);   p.next:=q;  p:=q
end;
p.next:=nil;      
closefile(f);  showmessage(' Очередь  создана ')
end;
procedure TForm1.Button2Click(Sender: TObject);
var   p:link;
begin
label1.Caption:='';
p:=L;
while   p<>nil  do
begin
label1.Caption:=label1.Caption + inttostr(p.val) + '   ';   p:=p.next
end;
end;
procedure  TForm1.Button3Click(Sender: TObject);
var  r:link;  d:integer;
begin
d:=strtoint(LabeledEdit1.Text);
new(r);  r.val:=d;  r.next:=L.next;  L.next:=r;
end;
end.
Что нужно сделать чтобы после 9ого было, меняя только:
Код:
procedure  TForm1.Button3Click(Sender: TObject);
var  r:link;  d:integer;
begin
d:=strtoint(LabeledEdit1.Text);
new(r);  r.val:=d;  r.next:=L.next;  L.next:=r;
end;
Я вроде понимаю что надо индексирование сделать :
Код:
i : byte;
for  i:=2  to  15  do.
Но как ни делая ничего не выходит. Помогите сделать, заменяя только Button3click.
Nikitqa вне форума Ответить с цитированием
Старый 29.12.2011, 20:07   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,542
По умолчанию

Код:
p:=L; //начинаем с сначала
i:=o; // и считаем элементы
while p<>nil do begin // проверяем конец списка
p:=p.next; 
i:=i+1; // считаем элементы
if i=7 then begin //проверяем нужное место
  new(r); // новый элемент
  r.next:=p.next; // все оставшиеся теперь будут после нового (r)
  p.next:=r;  //а сам новый будет после текущего (p)
  r.val:=d; // задаем значение нового
  break; // досрочно закончит  цикл
end;
код не проверял!

Цитата:
Помогите сделать, заменяя только Button3click.
Увы так не получится. В ваш список из файла вводится только ОДИН элемент.
Код:
  reset(f);
  new(L);
  p:=L;                   
  while not EOF(f) do begin
//  read(f,  L.val);   
//  begin
    new(q);  
    q.next:=nil;
    read(f,  q.val);   
    p.next:=q;
    p:=q;
  end;
//  p.next:=nil;      
  closefile(f);
код не проверял!
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать div с ссылками из текстового файла ZvEr_HaCkEr PHP 2 23.05.2011 11:07
Создать конкорданс для текстового файла Archik Общие вопросы C/C++ 0 19.05.2010 12:12
Как программно удалить одну строку из текстового файла(txt)? lexus_samara Общие вопросы Delphi 6 24.04.2010 22:57
скрывание строк, ячейки которой не содержат нужного значения mihaz Microsoft Office Excel 27 02.03.2010 17:45
Можно программно создать dll из текстового файла? hamann-2006 Помощь студентам 2 29.10.2007 10:41