Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 09.01.2012, 21:00
Protos1993 Protos1993 вне форума
Прохожий
 
Регистрация: 09.01.2012
Сообщения: 8
Репутация: 10
По умолчанию Файлы в Delphi

Здравствуйте!! помогите составить программу которая создает файл ’F1.DAT’ из 10 элементов типа Integer. Выведите его на экран. Удалите последние пять элементов и выведите его содержимое на экран.(на форме 2 кнопки "Создать" и "Удалить", и Memo в которое выводятся числа). Ребят выручайте! Заранее благодарен!
Ответить с цитированием
  #2  
Старый 09.01.2012, 21:07
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Задача не проста, а ОЧЕНЬ проста. Каков ваш код?
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #3  
Старый 09.01.2012, 21:47
Protos1993 Protos1993 вне форума
Прохожий
 
Регистрация: 09.01.2012
Сообщения: 8
Репутация: 10
По умолчанию

Мой код к сожалению не правилен, прогрмма работает но не по нужному алгаритму(нужно было использовать Assignfile и подобные процедуры для работы с файлами в делфи), можете предложить свой вариант?
вот код
Код:
procedure TForm9.Button1Click(Sender: TObject);
var
  List:TStringList;
  i:integer;
begin
  List:=TStringList.Create;
  Randomize;
  for i:=1 to 10 do
      List.Add(IntToStr(Random(100)));
  List.SaveToFile('C:\Новая папка\F1.DAT');
  Elements.Lines.LoadFromFile('C:\Новая папка\F1.DAT');
end;

procedure TForm9.Button2Click(Sender: TObject);
var
  List:TStringList;
  i:integer;
begin
  List:=TStringList.Create;
  List.LoadFromFile('C:\Новая папка\F1.DAT');
  for i:=1 to 5 do
      List.Delete(5);
 Elements.Lines:=List;

Последний раз редактировалось lmikle, 09.01.2012 в 22:48.
Ответить с цитированием
  #4  
Старый 09.01.2012, 22:07
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

После того как вы привели свой код, могу:
Код:
// создание файла и вывод в Memo
var
  F : TextFile;
  I, J : Integer;
begin
  Memo1.Clear;
  Randomize;
{$I-}
  AssignFile(F, 'f1.dat');
  ReWrite(F, 1);
  for I := 0 to 9 do
  begin
    J := Random(100);
    WriteLn(IntToStr(J));
    Memo1.Lines.Add(IntToStr(J));
  end;
  CloseFile(F);
{$I+}  
end;

// чтение файла и вывод в Memo
var
  F : TextFile;
  I : Integer;
  S : String;
begin
  Memo1.Clear;
{$I-}
  AssignFile(F, 'f1.dat');
  Reset(F, 1);
  for I := 0 to 4 do
  begin
    ReadLn(S);
    Memo1.Lines.Add(S);
  end;
  CloseFile(F);
{$I+}  
end;
На вскидку, примерно так.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #5  
Старый 09.01.2012, 22:10
Protos1993 Protos1993 вне форума
Прохожий
 
Регистрация: 09.01.2012
Сообщения: 8
Репутация: 10
По умолчанию

В какую папку сохраняется файл??
Ответить с цитированием
  #6  
Старый 09.01.2012, 22:13
Protos1993 Protos1993 вне форума
Прохожий
 
Регистрация: 09.01.2012
Сообщения: 8
Репутация: 10
По умолчанию

ReWrite(F, 1);
в этом месте ругается (Too many actual parameters- вот такую ошибку выдает).Не могли бы вы проверить код на работоспособность ???
Ответить с цитированием
  #7  
Старый 09.01.2012, 22:20
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Сохраняется в папку проекта.
Писал по памяти мог и ошибиться.

Угу, для TextFile нужно просто ReWrite(F).
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #8  
Старый 09.01.2012, 22:25
Protos1993 Protos1993 вне форума
Прохожий
 
Регистрация: 09.01.2012
Сообщения: 8
Репутация: 10
По умолчанию

Почему то при нажатии кнопки "удалить" из мемо удаляются все элементы а не последние 5?
Ответить с цитированием
  #9  
Старый 09.01.2012, 22:29
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Первая процедура создаёт 10 рандомных чисел и сохраняет в файл, вторая читает 5 значений и грузит их в Memo. Обе процедуры предварительно очищают Memo.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #10  
Старый 09.01.2012, 22:32
Protos1993 Protos1993 вне форума
Прохожий
 
Регистрация: 09.01.2012
Сообщения: 8
Репутация: 10
По умолчанию

мне нужно чтобы 5 чисел выводилось в мемо т.е их должно быть видно а при нажатии на кнопки "Удалить " у меня мемо пустое
Ответить с цитированием
  #11  
Старый 09.01.2012, 22:41
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Код:
// чтение файла и вывод в Memo
var
  F : TextFile;
  I : Integer;
  S : String;
begin
  Memo1.Clear;
{$I-}
  AssignFile(F, 'f1.dat');
  Reset(F, 1);
  for I := 0 to 4 do
  begin
    ReadLn(S);
    Memo1.Lines.Add(S);
  end;
  CloseFile(F);
{$I+}  
end;
то есть, предварительно нужно создать этот файл, иначе и будет пусто.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #12  
Старый 09.01.2012, 22:48
Protos1993 Protos1993 вне форума
Прохожий
 
Регистрация: 09.01.2012
Сообщения: 8
Репутация: 10
По умолчанию

Вот программа убедитель в том что 5 элементов не выдает в мемо
Вложения
Тип файла: rar файлы 2.rar (167.5 Кбайт, 1 просмотров)
Ответить с цитированием
  #13  
Старый 09.01.2012, 23:09
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Говорю же, писано на коленке. Мог бы и в справку заглянуть.
Код:
...
    WriteLn(F, IntToStr(J));
...

...
    ReadLn(F, S);
...
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #14  
Старый 09.01.2012, 23:12
Protos1993 Protos1993 вне форума
Прохожий
 
Регистрация: 09.01.2012
Сообщения: 8
Репутация: 10
По умолчанию

Спасибо огромное!!!Вы меня реально выручили!!! Вы даже не представляете как я Вам благодарен!!!
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 08:54.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025