Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.12.2011, 10:14   #1
Сергей К.
Пользователь
 
Регистрация: 08.05.2009
Сообщений: 11
Сообщение Файлы в TP7 и Delphi

Задание: Создать файл каталог файлов. В отдельную строку занести записи, созданные ранее указанной даты.
Сергей К. вне форума Ответить с цитированием
Старый 27.12.2011, 11:07   #2
danekne
Форумчанин
 
Регистрация: 12.02.2007
Сообщений: 360
По умолчанию

Функции findfirst и findnext в делфях юзай
danekne вне форума Ответить с цитированием
Старый 27.12.2011, 11:09   #3
danekne
Форумчанин
 
Регистрация: 12.02.2007
Сообщений: 360
По умолчанию

Ааа. и TSearchRec для определения даты создания
danekne вне форума Ответить с цитированием
Старый 28.12.2011, 20:10   #4
Сергей К.
Пользователь
 
Регистрация: 08.05.2009
Сообщений: 11
По умолчанию

Всем спасибо! Оказалось препод не так задание сформулировал. Надо рандомом создать имена и расширения файлов (но самих файлов не создавать), создать только один, в котором этим данные будут лежать. И к каждому "файлу" задать рандомом дату создания (дд.мм.гг). И вывести в конце те имена файлов, которые типа "созданы" ранее указанной даты.
Есть это прога в паскале. кто сможет переделать в делфи?
Сергей К. вне форума Ответить с цитированием
Старый 28.12.2011, 23:19   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

если в Паскаль не использовались модули CRT и Graph - то задача вообще тривиальная. Достаточно в Delphi создать консольное приложение и ЦЕЛИКОМ вставить туда Вашу программу на Паскаль.

Если же нужно приложение с формами - то это уже чуть сложнее. Но я в вашей задаче не вижу наличие какого-то большого интерфейса с пользователем, поэтому подобная переделка тоже не должна вызвать сложностей.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.12.2011, 21:30   #6
Сергей К.
Пользователь
 
Регистрация: 08.05.2009
Сообщений: 11
По умолчанию

проблема как раз в том, что там и нужно сделать форму. с кнопками, окнами и т.д. Уже есть готовая прога сейчас постараюсь выложить. Только в ней один косяк. Если список файлов брать не из файла, а самому в окно вводить, то вместо тех букв/цифр, которые вводил, выводится "абра-кадабра" какая-то..
Сергей К. вне форума Ответить с цитированием
Старый 29.12.2011, 21:39   #7
Сергей К.
Пользователь
 
Регистрация: 08.05.2009
Сообщений: 11
По умолчанию

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, ExtDlgs;

type
  TForm1 = class(TForm)
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    GrUs: TGroupBox;
    LabUsl: TLabel;
    GrInput: TGroupBox;
    GrOutput: TGroupBox;
    MemoInput: TMemo;
    MemoOutput: TMemo;
    Button1: TButton;
    Button2: TButton;
    ChCreateFile: TCheckBox;
    StB1: TStatusBar;
    Sd1: TSaveDialog;
    Opd1: TOpenDialog;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Button3: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
 type tm= text;
 var fo, fn: tm;
 InitF: Boolean; //для проверки открытия входного файла
{$R *.dfm}

Procedure Creat(Var f:tm);
 var t: String;
     i: Integer;
  Begin
   ReWrite(f);
   For i:=1 to 40 do
   Begin
    t:=chr(random(50)+60);
    Write(f,t);
   End;
   CloseFile(f);
  End;

Procedure Print1(var f:tm; m:TMemo);
  Var t,td,tm,tg: String;
     st: String;
  Begin
  st:='';
  While not(Eof(f)) Do
   Begin
    ReadLn(f,t);
    m.Lines.Add(t);
   End;
   //m.Lines.Add(st);
  End;

Function InitFile(var fn: TFileName; Flag: Boolean):boolean;
 Begin
 fn:='';
 InitFile:=False;
 //флаг отслеживает, тру - файл создаем, фалсе - файл открываем
 If Flag=True
  Then
   Begin
    Form1.sd1.Filter:='Text files (*.txt)|*.TXT';
    IF Form1.sd1.Execute then
     Begin
      InitFile:=True;
      Form1.sd1.DefaultExt:='.txt';
      fn:=Form1.SD1.FileName;
      fn:=fn;
     End;
   End
  Else
   Begin
    Form1.opd1.Filter:='Text files (*.txt)|*.TXT';
    Form1.opd1.DefaultExt:='.txt';
   If Form1.opd1.Execute then
    Begin
     InitFile:=true;
     fn:=Form1.opd1.FileName;
    End;
   End;
 End;

procedure TForm1.FormCreate(Sender: TObject);
begin
InitF:= False;
Randomize;
LabUsl.Caption:='Из символьного файла (char)' +
 '(NameA) скопировать все латинские'+
 'символы в новый файл. Отобразить' +
 'исходные данные и отобранные';
 
end;

procedure TForm1.Button1Click(Sender: TObject);
Var S: String[15];
name_n: TFileName;
begin
 MemoInput.Clear;
 if Not InitFile(name_n, chCreateFile.Checked) Then Exit;
 InitF:=True;
 StB1.Panels[0].Text:=S+name_n;
 Form1.Label1.Caption:=name_n;
 grInput.Caption:='Входной файл:';
  AssignFile(fo,name_n);
  if chCreateFile.Checked=true
   Then
    Begin
     Creat(fo);
     Reset(fo);
     Print1(fo,MemoInput);
     CloseFile(fo);
     End
   Else
    Begin
     Reset(fo);
     Print1(fo,MemoInput);
     CloseFile(fo);
    End;




end;

procedure TForm1.Button2Click(Sender: TObject);
Var t,td,tm,tg,DS,MS,GS: String;
 name_o: TFileName;
      s: String[15];
      k,d,m,g,dd,mm,gg: Integer;
begin

 IF (NOT InitF) Then
  Begin
   Application.MessageBox('Исходный файл не оределён!','ошибка!');
   Exit;
  End;

  IF NOT (InitFile(name_o,True)) Then Exit;
   AssignFile(fn,name_o);
   Stb1.Panels[1].Width:=Length(name_o)*6+15*5;
   s:='Выходной файл';
   Stb1.Panels[1].Text:=s+name_o+'.txt';
   Form1.Label1.Caption:=name_o;
   MemoOutput.Clear;
 //открываем, читаем, фильтруем, сохраняем
 Rewrite(fn); Reset(fo);

   k:=0;
   While Not Eof(fo) do
   Begin

dS:=Form1.Edit1.Text;
mS:=Form1.Edit2.Text;
gS:=Form1.Edit3.Text;
 dd:=StrToInt(dS);
 mm:=StrToInt(mS);
 gg:=StrToInt(gS);

    ReadLn(fo,t);
      td:=Copy(t,1,2);
      tm:=Copy(t,4,2);
      tg:=Copy(t,7,4);
      ShowMessage(td+' '+tm+' '+tg+'');
      d:=StrToInt(td);
      m:=StrToInt(tm);
      g:=StrToInt(tg);
      IF (gg>g) OR ((gg=g) AND (mm>m)) OR ((gg=g) AND (mm=m) AND (dd>d))

    Then WriteLn(fn,t);
    k:=k+1;
   End;
  CloseFile(fn);
  CloseFile(fo);
  Reset(fn);
  Print1(fn,MemoOutput);
  CloseFile(fn);
end;

procedure TForm1.Button3Click(Sender: TObject);
Var dS,mS,gS: String;
    dd,mm,gg: Integer;

begin
dS:=Form1.Edit1.Text;
mS:=Form1.Edit2.Text;
gS:=Form1.Edit3.Text;
 dd:=StrToInt(dS);
 mm:=StrToInt(mS);
 gg:=StrToInt(gS);

end;

end.
со слов препода, в той части, которая красная нужно что-то изменить, чтобы избавиться от того, что писал в прошлом комменте...



___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 30.12.2011 в 10:26.
Сергей К. вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Очень нужно сделать задачу в Delphi(Типизированные файлы. файлы записи) Vitalik1 Помощь студентам 1 16.12.2011 10:38
TP7.0,Graph What's_That? Помощь студентам 2 21.07.2011 18:53
программа в TP7 D1zz1 Помощь студентам 5 05.06.2011 23:47
Задачка на TP7 Disel Паскаль, Turbo Pascal, PascalABC.NET 2 19.01.2009 14:30
6 задач по TP7 Disel Паскаль, Turbo Pascal, PascalABC.NET 17 14.01.2009 16:33