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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.11.2009, 03:08   #11
Roof
Форумчанин
 
Аватар для Roof
 
Регистрация: 01.02.2007
Сообщений: 785
По умолчанию

ничего не понял - какой вид данные должны принять. И что делает цикл - не понял.
вобщем сделал по-своему - думаю понятно будет. Читай комментарии внимательно. И кинь на форму SaveDialog. Хочешь исходник пришлю.
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Button1: TButton;
    ListBox1: TListBox;
    Button2: TButton;
    SaveDialog1: TSaveDialog;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
     SL: TStringList; ////TStringList  объявляем
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

//функция преобразования
function My_mix(s: string): string;
var i:integer;
 ns:string;
begin
 if Length(s) mod 2<>0 then exit;//если в строке нечетное кол-во символов то выход
 ns:='';
 for i:=Length(s)div 2 downto 1 do ns:=ns+Copy(s,i*2-1,2);
 Result:=ns;
end;

//новая кнопка - сохранить
procedure TForm1.Button2Click(Sender: TObject);
var
FName: string;
begin
if SaveDialog1.Execute then
 begin
  FName := SaveDialog1.FileName;
  SL.SaveToFile(FName);
  SL.Clear; //TStringList  очищаем
 end;


end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 try
   SL.Free; //TStringList  освобождаем :)
 finally
 end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 Edit1.Text:= '';
 Edit2.Text:= '';
 SaveDialog1.Filter:= 'текстовые (*.txt)|*.txt';
 SaveDialog1.DefaultExt:= '.txt';
 SL:= TStringList.Create;//TStringList создаем
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 time: integer;//предполагаю целые числа часов и минут
 str_hex, str_mix, temp: string;
begin
try
 time:= StrToInt(Edit1.Text)*3600;
 time:= time + StrToInt(Edit2.Text)*60;
except
 ShowMessage('Введите оба значения цифрами!');
 exit;
end;
 str_hex:= IntToHex(time, 8);
 ShowMessage(str_hex);
 //тут вызываешь функцию преобразования своего.
 str_mix:=  My_mix(str_hex);
 ShowMessage(str_mix);

 //вот тут перед добавлением формируй данные свои в любом виде.

 SL.Add(str_mix); //добавляем в переменную TStringList


end;

end.
Тебе же нужно, получается, кучу строчек сохранить в файл? Вот строчки формируй по своему правилу прямо перед SL.Add(); А потом в скобки записывай - то что сформировал (тип string);
Изо всей благодати
В руках крепко сжатых
Я донесу только капли

Последний раз редактировалось Roof; 27.11.2009 в 03:16.
Roof вне форума Ответить с цитированием
Старый 27.11.2009, 03:15   #12
fize
Форумчанин
 
Регистрация: 24.11.2009
Сообщений: 155
По умолчанию

вот для наглядности во вложении. цикл добавляет перед hex нули.
осталось только сделать что бы дописывалось-
[3]
0=и тут число с нулями и hex на конце
вроде как ini функцию можно использовать-
ini.WriteString(section,key,value)
но вот разобраться не могу
Вложения
Тип файла: txt 255_55.txt (81 байт, 139 просмотров)

Последний раз редактировалось fize; 27.11.2009 в 03:18.
fize вне форума Ответить с цитированием
Старый 27.11.2009, 03:24   #13
Roof
Форумчанин
 
Аватар для Roof
 
Регистрация: 01.02.2007
Сообщений: 785
По умолчанию

[3] - пишется один раз во всем файле или перед каждой строкой?
и сколько нолей перед числом ставить?
73-length(str_mix) - столько нолей ставить перед числом??
Изо всей благодати
В руках крепко сжатых
Я донесу только капли
Roof вне форума Ответить с цитированием
Старый 27.11.2009, 03:27   #14
fize
Форумчанин
 
Регистрация: 24.11.2009
Сообщений: 155
По умолчанию

Цитата:
Сообщение от Roof Посмотреть сообщение
[3] - пишется один раз во всем файле или перед каждой строкой?
и сколько нолей перед числом ставить?
73-length(str_mix) - столько нолей ставить перед числом??
в этом файле ничего больше не будет так что один раз пишется. 73 это длина всей строки от 0= следовательно 71
fize вне форума Ответить с цитированием
Старый 27.11.2009, 03:37   #15
Roof
Форумчанин
 
Аватар для Roof
 
Регистрация: 01.02.2007
Сообщений: 785
По умолчанию

кусок кода - думаю поймешь.
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
 time, i: integer;//предполагаю целые числа часов и минут
 str_hex, str_mix, str_last: string;
begin
try
 time:= StrToInt(Edit1.Text)*3600;
 time:= time + StrToInt(Edit2.Text)*60;
except
 ShowMessage('Введите оба значения цифрами!');
 exit;
end;
 str_hex:= IntToHex(time, 8);
 ShowMessage(str_hex);
 //тут вызываешь функцию преобразования своего.
 str_mix:=  My_mix(str_hex);
 ShowMessage(str_mix);

 //вот тут перед добавлением формируй данные свои в любом виде.
 SL.Add('[3]');
 str_last:= '0=';
 for i := 1 to 71 do
   str_last:= str_last + '0';
 str_last:= str_last + str_mix;
 SL.Add(str_last); //добавляем в переменную TStringList


end;
Это то или опять промахнулся я?
Изо всей благодати
В руках крепко сжатых
Я донесу только капли
Roof вне форума Ответить с цитированием
Старый 27.11.2009, 03:48   #16
fize
Форумчанин
 
Регистрация: 24.11.2009
Сообщений: 155
По умолчанию

Код:
procedure TForm1.Button2Click(Sender: TObject);
var
 i:integer;
 str_hex, str_mix, str_last,temp:string;
 time: integer;
begin
try
 time:= StrToInt(Edit1.Text)*3600;
 time:= time + StrToInt(Edit2.Text)*60;
except
 ListBox1.Items.Add('Ââåäèòå îáà çíà÷åíèÿ öèôðàìè!');
 exit;
end;
 str_hex:= IntToHex(time, 8);
 str_mix:=  My_mix(str_hex);
 temp:=(str_mix);
 SL.Add('[3]');
 str_last:= '0=';
 for i:=1 to 73-length(str_mix) do temp:='0'+temp;
 ListBox1.Items.Add(temp);
if SaveDialog1.Execute then
ListBox1.Items.SaveToFile(Savedialog1.FileName+'.txt')

end;
не работает. как сохранять из переменной temp?
p.s походу промахнулся. может проще ini задействовать как писал выше?
fize вне форума Ответить с цитированием
Старый 27.11.2009, 04:08   #17
Roof
Форумчанин
 
Аватар для Roof
 
Регистрация: 01.02.2007
Сообщений: 785
По умолчанию

Несколько строк - [3] и твою длинную - за раз не сохранишь из простого string. Нужен StringList. Держи исходник в архиве.
Зачем тут ini - честно сказать не понимаю. Все реализуется средствами делфи - без ini. Или я тебя совсем перестал понимать. Запускай исходник.

Вообще-то и без StringList можно...

без StringList - можно, прокосячил чуток. Пару строк поправить. Мы вообще Пришли к нужному результату-то?
Вложения
Тип файла: zip my_hex.zip (7.1 Кб, 8 просмотров)
Изо всей благодати
В руках крепко сжатых
Я донесу только капли

Последний раз редактировалось Stilet; 27.11.2009 в 07:43.
Roof вне форума Ответить с цитированием
Старый 27.11.2009, 05:15   #18
fize
Форумчанин
 
Регистрация: 24.11.2009
Сообщений: 155
По умолчанию

Цитата:
Сообщение от Roof Посмотреть сообщение
Несколько строк - [3] и твою длинную - за раз не сохранишь из простого string. Нужен StringList. Держи исходник в архиве.
Зачем тут ini - честно сказать не понимаю. Все реализуется средствами делфи - без ini. Или я тебя совсем перестал понимать. Запускай исходник.

Вообще-то и без StringList можно...
спасибо все работает.
а как без StringList сделать?
fize вне форума Ответить с цитированием
Старый 27.11.2009, 13:15   #19
Roof
Форумчанин
 
Аватар для Roof
 
Регистрация: 01.02.2007
Сообщений: 785
По умолчанию

Вот поправил без StringList сделал.
Вложения
Тип файла: zip my_hex2.zip (6.9 Кб, 9 просмотров)
Изо всей благодати
В руках крепко сжатых
Я донесу только капли
Roof вне форума Ответить с цитированием
Старый 27.11.2009, 19:40   #20
fize
Форумчанин
 
Регистрация: 24.11.2009
Сообщений: 155
По умолчанию

Цитата:
Сообщение от Roof Посмотреть сообщение
Вот поправил без StringList сделал.
спасибо тебе. то что нужно.
fize вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как отыскать числа в Hex-редакторе HellMercenariess Свободное общение 3 27.10.2009 12:41
Алгоритм перевода числа в hex text. Ivan_32 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 02.12.2008 21:36
Преобразование числа в строку )Игнат( Общие вопросы Delphi 6 06.07.2008 09:32
Преобразование десятичного числа в двоичное. Quize Паскаль, Turbo Pascal, PascalABC.NET 4 12.04.2008 16:09
Преобразование числа с плавающей точкой в строку Sibedir Общие вопросы Delphi 14 09.03.2008 21:48