PDA



bigmir)net TOP 100

Посмотреть полную версию : Програмеры требуется ваша консультация, как специалистов.


WEYDER
13-08-2006, 22:58
ребята у меня вот такой текст
A1h (.), A5h (.), ABh (.), EBh (.), A5h (.), 20h ( ), E0h (.)

! а нужно получить такой:

DATA H'A5A1'
DATA H'EBAB'
DATA H'20A5'
DATA H'00E0'
DATA H'0000'

еще чтоб посчитало сколько получается этих - DATA, вот это верхнее нужно как то в программу вставит а на выходе получит с DATAй

nano
13-08-2006, 23:04
я бы заюзал awk - 5 минут и готово

WEYDER
14-08-2006, 00:06
подробней пожалуйста что такое - awk

nano
14-08-2006, 00:08
подробней пожалуйста что такое - awk

http://www.gnu.org/software/gawk/gawk.html

WEYDER
14-08-2006, 00:52
nano вроде так вещь класная но я в нее не врубился шото, а не скажешь как на билдере это можно реализовать?

WEYDER
14-08-2006, 01:16
а вообще хоть на чем, лишь бы работало

SGI1981
14-08-2006, 01:49
Все что надо тебе я сделал.
Программу можешь скачать - скачать присоединенный к сообщению файл.

Вот текст основного модуля на C++ Builder 6.0.

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1hvaluetolist.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------


void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString SourseString,DestString,t1;
int i,i1,len,count;
char c;
SourseString=Memo1->Lines->Text;
DestString="";t1="";
SourseString=SourseString.UpperCase();
if (!(i=SourseString.Length())) return;
i1=i;
do{
while(SourseString[i]!='H') {if (!(--i)) goto EN1;} ;
if (!(i1=--i)) goto EN1;
c=SourseString[i1];
do {if (!(--i1)) goto EN1;c=SourseString[i1];}
while (((c>='0')&&(c<='9'))||((c>='A')&&(c<='F')));
DestString=DestString+SourseString.SubString(i1+1,i-i1);
i=i1;
}while (true);
EN1:
if ((i-=i1)>0) DestString=DestString+SourseString.SubString(i1+1,i);
i=DestString.Length()+1;
Memo2->Lines->Clear();
len=4;
do{
if ((i-=4)<1) {len=1-i;i=1;};
Memo2->Lines->Add("DATA H'"+DestString.SubString(i,len)+"'");
}
while (i!=1);
count=Memo2->Lines->Count;
for (int i=len;i<4;i++) t1=t1+"0";
Memo2->Lines->Strings[count-1]=Memo2->Lines->Strings[count-1].Insert(t1,8);
Memo2->Lines->Add("DATA H'0000'");
count++;
Edit1->Text=IntToStr(count);
}
//---------------------------------------------------------------------------

WEYDER
14-08-2006, 07:12
SGI1981!!!!! ты гений!!!! я уже 2й день над этим долбаюсь ;) и нефига. Спасибо огромное если чо по генной инженерии нужно будет обращайся, как доразрабатываем вирус чтоб продолжать жизнь и востанавливать организм я тебе на тихоря его дам (естествено испытаный на себе ;))

или если там дивиди накроется раскажу как предохранитель или диод за 30 коп поменять там и все дела ;).