Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.06.29;
Скачать: CL | DM;

Вниз

Дан файл, состоящий из чисел   Найти похожие ветки 

 
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;

Как видишь списка нет, а тожесамое. Твоя задача &#151; прочесть из файла в список, а потом, уже заполненый список, пройти с зада на перёд и вывести содержимое в 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;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.024 c
4-1192474636
alek
2007-10-15 22:57
2008.06.29
Рисование в, к примеру, Paint


15-1210759991
freezon
2008-05-14 14:13
2008.06.29
dxComponentPrinter и cxgrid


2-1212484394
D@nger
2008-06-03 13:13
2008.06.29
MDI окно и хэндл


3-1201003179
pavel_guzhanov
2008-01-22 14:59
2008.06.29
соединение с базой Oracle


15-1210925436
Ega23
2008-05-16 12:10
2008.06.29
Года полтора-два назад тема была