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

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

Вернуться   Форум программистов > Работа для программиста > Фриланс
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.03.2010, 12:43   #11
IL_Agent
 
Регистрация: 16.03.2010
Сообщений: 4
Радость

open System
open System.Text.RegularExpressions

let D2N dig = match dig with
| "I" -> 1
| "V" -> 5
| "X" -> 10
| "L" -> 50
| "C" -> 100
| "D" -> 500
| "M" -> 1000


let rec _RomToArab (s:string) res pred =
let predn= D2N (s.Substring (pred,1))
if s.Length=1 then res else
let curn = D2N (s.Substring (pred-1,1))
let newres=if curn<predn then res-curn else res+curn
if pred = 1 then newres
else _RomToArab s newres (pred-1)

let RomToArab (rom:string) =
_RomToArab rom (D2N (rom.Substring (rom.Length-1,1))) (rom.Length-1)

let rx = new Regex("[MDCLXVI]+")
let me = new MatchEvaluator(fun m->(RomToArab m.Value).ToString())

let srcString = "Now is MCMLXLVII year"

let resString = rx.Replace (srcString,me)

Console.WriteLine resString

Программы на заказ.C/C++, C#, F#, Delphi/Pascal, СУБД Access, MSSQL, Oracle.
Лабораторные, курсовые, дипломы. E-mail:rvverh@mail.ru
Мой блог: http://il-agent.livejournal.com
IL_Agent вне форума Ответить с цитированием
Старый 16.04.2010, 14:48   #12
Anton5
Пользователь
 
Регистрация: 12.03.2010
Сообщений: 18
По умолчанию

Помогите доделать программу в Delphi!
Вот задание!
Создать файл, содержащий информацию о спортсменах. Структура файла: Фамилия, имя, спортклуб, год вступления. Выдать список спортсменов, состоящих в заданном спортивном клубе, рассортированный в порядке увеличения года вступления.

А вот исходный текст программы:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Grids, Menus;

type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
N11: TMenuItem;
StringGrid1: TStringGrid;
Panel1: TPanel;
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Edit2: TEdit;
Label3: TLabel;
Edit3: TEdit;
Label4: TLabel;
Edit4: TEdit;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
N12: TMenuItem;
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N7Click(Sender: TObject);
procedure N11Click(Sender: TObject);
procedure N10Click(Sender: TObject);
procedure N12Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
TZ=Record
Surname:string[15];
Name:string[15];
Club:string[10];
Year:word;
end;
TF=File of TZ;
var
Form1: TForm1;
Z:TZ;
F,F1:TF;

implementation

{$R *.dfm}
//создать
procedure TForm1.N2Click(Sender: TObject);
begin
SaveDialog1.Execute;
If (SaveDialog1.FileName<>' ')then
begin
AssignFile(F,SaveDialog1.FileName);
Rewrite(F);
CloseFile(F);
end;
end;

//открыть
procedure TForm1.N3Click(Sender: TObject);
begin
OpenDialog1.Execute;
if (OpenDialog1.FileName<>'')then
begin
AssignFile(f,OpenDialog1.FileName);
Reset(F);
CloseFile(F);
end;
end;
//добавить
procedure TForm1.N6Click(Sender: TObject);
begin
If(Edit1.Text<>'')And(Edit2.Text<>' ')And(Edit3.Text<>'')And(Edit4.Text <>'') then
begin
Reset(F);
Seek(F,FileSize(F));
Z.Surname:=Edit1.Text;
Z.Name:=Edit2.Text;
Z.Club:=Edit3.Text;
Z.Year:=StrtoInt(Edit4.Text);
Write(F,Z);
end
else showMessage('Заполните все поля');
N4Click(nil);
end;
//заголовок таблицы
procedure TForm1.FormCreate(Sender: TObject);
begin
StringGrid1.Cells[0,0]:='Фамилия';
StringGrid1.Cells[1,0]:='Имя';
StringGrid1.Cells[2,0]:='Спортивный клуб';
StringGrid1.Cells[3,0]:='Год вступления';
end;
//просмотр
procedure TForm1.N4Click(Sender: TObject);
var
i:integer;
z:tz;
begin
Reset(f);
StringGrid1.RowCount:=1;
for i:=0 to filesize(f)-1 do
begin
seek(f,i);
read(f,z);
StringGrid1.Cells[0,i+1]:=Z.Surname;
StringGrid1.Cells[1,i+1]:=z.Name;
StringGrid1.Cells[2,i+1]:=Z.Club;
StringGrid1.Cells[3,i+1]:=inttostr(Z.Year);
end;
StringGrid1.RowCount:=filesize(f)+1 ;
if (StringGrid1.RowCount>1)then StringGrid1.FixedRows:=1;
end;
//удалить
procedure TForm1.N7Click(Sender: TObject);
begin
Edit1.Text:=' ';
Edit2.Text:=' ';
Edit3.Text:=' ';
Edit4.Text:=' ';

end;
//выход
procedure TForm1.N11Click(Sender: TObject);
begin
Application.Terminate;
end;
//сортировка
procedure TForm1.N10Click(Sender: TObject);
var
z_v:tz;
i,j:integer;
begin
reset(f);
for i:=filesize(f)-1 downto 1 do
for j:=0 to i-1 do
begin
seek(f,j);
read(f,z,z_v);
if z.Year>z_v.Year then
begin
seek(f,j);
write(f,z_v,z);
end;
end;
N4Click(nil);
end;
//удалить
procedure TForm1.N12Click(Sender: TObject);
begin
seek(f,FileSize(F)-1);
read(F,z);
seek(f,StringGrid1.Row-1);
write(f,z);
seek(f,FileSize(F)-1);
Truncate(f);
N4Click(nil);
end;

end.

Как мне Выдать список спортсменов, состоящих в заданном спортивном клубе, помогите, пожалуйста, а то не получается что-то...
Anton5 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа со строковыми данными. Anton5 Помощь студентам 3 13.03.2010 14:53
Использование текстовых файлов для работы со строковыми данными. bo-al Помощь студентам 2 11.02.2010 22:49
Работа со строковыми данными. medic357 Общие вопросы C/C++ 3 23.03.2009 19:41
Работа со строковыми переменными!!! NightFire Помощь студентам 10 02.03.2009 22:10
Работа со строковыми типами VenMaster Общие вопросы Delphi 2 04.06.2008 08:07