![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Дан файл, состоящий из чисел [D6, XP]
Wildyt © (2008-05-31 21:53:00)Привет!!
Помогите мне сделать задание. :(
----------------------------------------------------------------------------------
Задание:
Линейные динамические структуры...( работа со списками)
Дан файл, состоящий из чисел. Перевернуть его, прочитав в память..
----------------------------------------------------------------------------------
Вот что я сделал пока что - толко проблема в том ,что числа из файла читаются 1 2 3 4 5 - тоесть как и записаны, а мне надо чтобы это числа вывелись в перевёрнутом виде. 5 4 3 2 1 .
type pList= ^TList;
TList=record
info :integer;
next: pointer;
end;
procedure TForm1.Button1Click(Sender: TObject); // при нажатии на кнопку..
var i,a:integer;
k,otvet:string;
F:TextFile;
First,tmp: ^TList;
begin
First:= nil;
AssignFile(F,'data.txt');
Reset(F);
While not EOF(F) do
begin
Read(F,a);
new (tmp);
tmp^.info:=a;
tmp^.next:=First;
while tmp<> nil do
begin
Memo1.Lines.Add(IntToStr(tmp^.info));
tmp:=tmp^.next;
end;
end;
CloseFile(F);
end;
читаю книги,не достаточно инфы, помогите пожалуйста!!!
Зарание спасибо!
Германн (2008-06-01 01:31:00) [1]Удалено модератором
Умища (2008-06-01 01:06:00) [2]Удалено модератором
Германн (2008-06-01 00:52:00) [3]
> {RASkov} © (31.05.08 22:52) [20]
>
> > У него вообще ерунда написана tmp^.next:=First;
>
> Хм.... Точно, а я даже и не смотрел код.... А ведь он говорил,
> что все работает, осталось только "перевернуть".... Заврался
> :))
>
+1
Wildyt (2008-06-01 00:44:00) [4]sniknik СПАСИБО!
sniknik (2008-05-31 22:52:00) [5]ошибка... нужно не только pred:= nil; в начале делать но и point:= nil; на случай пустого файла.
{RASkov} (2008-05-31 22:52:00) [6]> У него вообще ерунда написана tmp^.next:=First;
Хм.... Точно, а я даже и не смотрел код.... А ведь он говорил, что все работает, осталось только "перевернуть".... Заврался :))
sniknik (2008-05-31 22:49:00) [7]
procedure TForm1.Button1Click(Sender: TObject); // при нажатии на кнопку..
type
PList = ^TList;
TList = record
info: integer;
pred: pointer;
end;
var
F: TextFile;
pred, point: PList;
a: integer;
begin
AssignFile(F, 'data.txt');
Reset(F);
pred:= nil;
while not Eof(F) do begin
Read(F, a);
new(point);
point.info:= a;
point.pred:= pred;
pred:= point;
end;
CloseFile(F);
while point <> nil do begin
Memo1.Lines.Add(IntToStr(point.info));
pred:= point;
point:= point.pred;
Dispose(pred);
end;
end;
Anatoly Podgoretsky (2008-05-31 22:49:00) [8]Автот твоя задачка решается просто, она из области подготовительных курсов, надо просто сеть и на бумажке выполнить задачу, потом алгоритм перенести в электронную форму. Вариат взять готовый код из Сети я не рассматриваю, ты же учиться пошел за знаниями, а не за бумажками, бумажку можно купить в переходе метро и если кто то тебе приведет этот элементарнейший код, то он окажет тебе медвежью услугу. Если же нужна бумажка, то вывеси объявление в ВУЗЕ с указанием вознаграждения. А то есть много умных людей, а денег у них нет.
sniknik (2008-05-31 22:44:00) [9]> Тебе в [2] решение написали :)))
препод не зачтет, к чему там получаются динамические структуры?...
---------------
пособие начинающему хакеру.
берете ноутбук и фомку, ищете банкомат, "хакаете" фомкой банкомат и "смываетесь". не забудьте ноутбук. вот тут нас спрашивают а зачем вообще ноутбук... ну а какой же вы тогда хакер без ноутбука?
Anatoly Podgoretsky (2008-05-31 22:41:00) [10]
> Ничего не меняя можно заменить Lines.Add на Lines.Insert(0,
> ...
Это ерунда, ему не в мемо нужен обратный порядок, а в списке.
Мемо только для контроля.
Anatoly Podgoretsky (2008-05-31 22:40:00) [11]У него вообще ерунда написана tmp^.next:=First;
А First всегда nil
И книги тоже не помогают.
Когда там в армию приглашают?
nimble_ (2008-05-31 22:35:00) [12]Удалено модератором
{RASkov} (2008-05-31 22:25:00) [13]> [12] Wildyt (31.05.08 22:21)
Ты сквозь слезы ответы не видешь?) Или и ты безнадежен? :)
Wildyt (2008-05-31 22:21:00) [14]Знаю считать с файла.. это ерунда.
А занести в спис ок.. потом считать..
помогите написать мне ((пожалуйста.
Wildyt (2008-05-31 22:20:00) [15]еййй..
это просто счатать с файла..
я делал сначало обык способом. вот.
begin
AssignFile(F,'data.txt');
Reset(F);
ReadLn(F,k);
For i:=Length(k) downto 1 do
begin
otvet:=otvet+k[i];
end;
ShowMessage(otvet);
end;
а через список я пытаюь не выходит ((((((
{RASkov} (2008-05-31 22:18:00) [16]> [9] Wildyt (31.05.08 22:16)
Тебе ответа в [2] недостаточно?
Wildyt (2008-05-31 22:16:00) [17]мм.. сделал бы.. если бы не эти спискии (((
помогите написать..
знаю для Вас это ерунда..
{RASkov} (2008-05-31 22:12:00) [18]procedure TForm1.Button1Click(Sender: TObject); // при нажатии на кнопку..
var otvet: string;
F: TextFile;
begin
AssignFile(F,'data.txt');
Reset(F);
try
While not EOF(F) do begin
ReadLn(F, otvet);
Memo1.Lines.Insert(0, otvet);
end;
finally
CloseFile(F);
end;
end;
Wildyt (2008-05-31 22:09:00) [19]Значет нужно каждую цифру заганять..
а как это сделать?????
искал в инете литературу не нашёл... (
Kolan (2008-05-31 22:06:00) [20]Имхо, это будет работать неверно.
1. Зачем ты выводишь при считывании каждой строки? По сути ты тут не используешь связный список. Ты тупо перекладываешь туду данные.
Твой код эквивалентен
var
i,a:integer;
k,otvet:string;
F:TextFile;
First,tmp: ^TList;
begin
First:= nil;
AssignFile(F,'E:\12345.txt');
Reset(F);
while not EOF(F) do
begin
Read(F,a);
Memo1.Lines.Add(IntToStr(a));
end;
CloseFile(F);
end;
Как видишь списка нет, а тожесамое. Твоя задача прочесть из файла в список, а потом, уже заполненый список, пройти с зада на перёд и вывести содержимое в Memo.
Пробуй еще результаты сюда.