![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
Регистрация: 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 |
![]() |
![]() |
![]() |
#12 |
Пользователь
Регистрация: 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 | Помощь студентам | 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 |