Форум: "Начинающим";
Текущий архив: 2008.06.29;
Скачать: [xml.tar.bz2];
ВнизДан файл, состоящий из чисел Найти похожие ветки
← →
Wildyt (2008-05-31 21:53) [0]Привет!!
Помогите мне сделать задание. :(
----------------------------------------------------------------------------------
Задание:
Линейные динамические структуры...( работа со списками)
Дан файл, состоящий из чисел. Перевернуть его, прочитав в память..
----------------------------------------------------------------------------------
Вот что я сделал пока что - толко проблема в том ,что числа из файла читаются 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;
читаю книги,не достаточно инфы, помогите пожалуйста!!!
Зарание спасибо!
← →
{RASkov} © (2008-05-31 21:56) [1]> [0] Wildyt (31.05.08 21:53)
Как все сложно..... Перепиши этот код в "пять" строчек (убери лишнее) потом можно будет и поговорить....
В прочем, потом и сам сделаешь, если сможешь стыренный код упростить под свою задачу....
← →
Германн © (2008-05-31 21:58) [2]Ничего не меняя можно заменить Lines.Add на Lines.Insert(0,...
← →
Wildyt (2008-05-31 22:02) [3]Стыренный код???????
Это всё что я взял с книги.
И сделал свою часть.
Легче сказать - нежели помочь.
← →
{RASkov} © (2008-05-31 22:04) [4]> [3] Wildyt (31.05.08 22:02)
> Стыренный код???????
>
> Это всё что я взял с книги.
:)
Стырил с книги :) Или нет? Не сам же придумал)
Ладно.... не кипятись) [2] изучай :)
← →
Wildyt (2008-05-31 22:06) [5]Даааа книга тоже.. не всё даёт знать ((
Знаю что ,список и читаться с конца ..
Что я не прваельно делаю??
← →
Kolan © (2008-05-31 22:06) [6]Имхо, это будет работать неверно.
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.
Пробуй еще результаты сюда.
← →
Wildyt (2008-05-31 22:09) [7]Значет нужно каждую цифру заганять..
а как это сделать?????
искал в инете литературу не нашёл... (
← →
{RASkov} © (2008-05-31 22:12) [8]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:16) [9]мм.. сделал бы.. если бы не эти спискии (((
помогите написать..
знаю для Вас это ерунда..
← →
{RASkov} © (2008-05-31 22:18) [10]> [9] Wildyt (31.05.08 22:16)
Тебе ответа в [2] недостаточно?
← →
Wildyt (2008-05-31 22:20) [11]еййй..
это просто счатать с файла..
я делал сначало обык способом. вот.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;
а через список я пытаюь не выходит ((((((
← →
Wildyt (2008-05-31 22:21) [12]Знаю считать с файла.. это ерунда.
А занести в спис ок.. потом считать..
помогите написать мне ((пожалуйста.
← →
{RASkov} © (2008-05-31 22:25) [13]> [12] Wildyt (31.05.08 22:21)
Ты сквозь слезы ответы не видешь?) Или и ты безнадежен? :)
← →
nimble_ (2008-05-31 22:35) [14]Удалено модератором
← →
Anatoly Podgoretsky © (2008-05-31 22:40) [15]У него вообще ерунда написана tmp^.next:=First;
А First всегда nil
И книги тоже не помогают.
Когда там в армию приглашают?
← →
Anatoly Podgoretsky © (2008-05-31 22:41) [16]
> Ничего не меняя можно заменить Lines.Add на Lines.Insert(0,
> ...
Это ерунда, ему не в мемо нужен обратный порядок, а в списке.
Мемо только для контроля.
← →
sniknik © (2008-05-31 22:44) [17]> Тебе в [2] решение написали :)))
препод не зачтет, к чему там получаются динамические структуры?...
---------------
пособие начинающему хакеру.
берете ноутбук и фомку, ищете банкомат, "хакаете" фомкой банкомат и "смываетесь". не забудьте ноутбук. вот тут нас спрашивают а зачем вообще ноутбук... ну а какой же вы тогда хакер без ноутбука?
← →
Anatoly Podgoretsky © (2008-05-31 22:49) [18]Автот твоя задачка решается просто, она из области подготовительных курсов, надо просто сеть и на бумажке выполнить задачу, потом алгоритм перенести в электронную форму. Вариат взять готовый код из Сети я не рассматриваю, ты же учиться пошел за знаниями, а не за бумажками, бумажку можно купить в переходе метро и если кто то тебе приведет этот элементарнейший код, то он окажет тебе медвежью услугу. Если же нужна бумажка, то вывеси объявление в ВУЗЕ с указанием вознаграждения. А то есть много умных людей, а денег у них нет.
← →
sniknik © (2008-05-31 22:49) [19]
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;
← →
{RASkov} © (2008-05-31 22:52) [20]> У него вообще ерунда написана tmp^.next:=First;
Хм.... Точно, а я даже и не смотрел код.... А ведь он говорил, что все работает, осталось только "перевернуть".... Заврался :))
← →
sniknik © (2008-05-31 22:52) [21]ошибка... нужно не только pred:= nil; в начале делать но и point:= nil; на случай пустого файла.
← →
Wildyt (2008-06-01 00:44) [22]sniknik СПАСИБО!
← →
Германн © (2008-06-01 00:52) [23]
> {RASkov} © (31.05.08 22:52) [20]
>
> > У него вообще ерунда написана tmp^.next:=First;
>
> Хм.... Точно, а я даже и не смотрел код.... А ведь он говорил,
> что все работает, осталось только "перевернуть".... Заврался
> :))
>
+1
← →
Умища (2008-06-01 01:06) [24]Удалено модератором
← →
Германн © (2008-06-01 01:31) [25]Удалено модератором
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.06.29;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.043 c