Показать сообщение отдельно
  #1  
Старый 08.05.2010, 17:32
Add_Mod Add_Mod вне форума
Прохожий
 
Регистрация: 08.05.2010
Сообщения: 18
Репутация: 10
Сообщение Динамические структуры (Очередь)

Запутался с синтаксисом не могу осилить, может кто подсказать?
Код:
type link=^elem;
  elem=record
  val:integer;
  val1:string;
  next:link
  end;
var
  L:link;
  Form1: TForm1;

implementation

{$R *.dfm}

-------------------------
procedure TForm1.Button10Click(Sender: TObject);
var p,q:link;
    f:textfile;
begin
assignfile(f,'File2.txt');
reset(f);
new(L);
readln(f,L.val1);
p:=L;

  While not EOF(f) do
    begin
      new(q);
      readln(f,q.val1);
      p.next:=q;
      p:=q;
    end;
  p.next:=nil;
  CloseFile(f);
  ShowMessage('Очередь создана');
end;

procedure TForm1.Button11Click(Sender: TObject);
var p:link;
begin
Label8.Caption:='';
p:=L;

  While p<>nil do
    begin
      Label8.Caption:=Label8.Caption+p.val1+' '+#13;
      p:=p.next;
    end;
end;
---Вся проблема здесь---
procedure TForm1.Button12Click(Sender: TObject);
var z,q:link;
    n,i:integer;
begin
z:=L.next;   L.next:=z.next;   dispose(z)
end;
end.
Есть файл, есть кнопки, одна считывает из файла и записывает в динамическую очередь, вторая показывает этот самы список, нужно что бы удаляла.
Удаление сделал, но только следующего элемента в очереди, а надо что бы удаляла запращиваемый, например в LabeledEdit ввёл 4 он удалил 4-й элемент из очереди...
Пробовал по разному в итоге либо прога висла, либо не шагала до N-го элемента, либо в ошибку вылетала...запутался уже с ними...
Может кто с этим знаком подскажите куда копать и как синтаксис представить. Пробовал с While - очень всё плохо, c For - что-то етсь, но ошибко-ошибко!
Ответить с цитированием