Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Вопросы по программированию на C/С++

Автор: Mickey_from_nsk
Дата сообщения: 05.04.2007 12:33

Цитата:
Ну, не будем тут разводить Holey War, думаю, подобных тем в инете нарыть можно тоннами

Поддерживаю
Цитата:
Просто я не понимаю одного: да, действительно STL многого не умеет и не тянет на кросплатформенную объектно-ориентированную System API. Ну дык взяли бы и разработали такую именно под С++.

А им оно надо было? Им надо было сделать .NET Framework для шарпа и ВБ. Точка. С++ туда нужен постольку поскольку. В принципе не вижу ничего плохого.
А С++ на .NET Framework действительно плохо ложится. Поэтому так криво и получается. Ну ничего, может в третьей версии компилятора еще причешут. Первую вообще вспоминать страшно.
Автор: Qraizer
Дата сообщения: 05.04.2007 13:10
Большинство твоих вопросов от непонимания побутительных мотивов, приведших в конце концов ко всему этому. Их можно осились простыми рассуждениями а-ля "дедуктивный метод" © Шерлок Холмс или читая соответствующую литературу авторства а-ля докторов Ватсонов. Глянь, например, на мои домыслы здесь или здесь. Не претендую на достойного последователя Холмса, но это по крайней мере кратко.
Автор: xdude
Дата сообщения: 06.04.2007 13:03
Товарисчи, я тут уже который день мучаюсь с проблемой: можно ли с помощью boost::bind передавать указатели на callback-функции (MSVS 2005)?
Ситуация следующая:

Код:
typedef int (*SomeCallback)(int SomeParam1, int SomeParam2);
function SomeDataProcessing(const std::string &input, std::string &output, SomeCallback callback);

class MyClass
{
...
int MyCallback(int SomeParam1, int SomeParam2)
{
return 0;
};

void Process(const std::string& input, std::string &output)
{
// Вот здесь происходит нестыковка:
SomeDataProcessing(input, output, boost::bind(&MyClass::MyCallback, this, _1, _2));
};
};
Автор: Qraizer
Дата сообщения: 06.04.2007 13:54
А с какой радости он должен был кастовать экземпляры классов в указатели на функции, если в этих классах нет соответствующих перегруженных операций приведения типов?
Автор: xdude
Дата сообщения: 06.04.2007 16:52
Qraizer
Дык вот я и спрашиваю, как заставить всё это работать? Насколько я понял, в бусте bind() существует в двух видах: как темплейт класса и как темплейт фукнции, хотя, может я просто ошибаюсь. В общем, как же все-таки заставить его работать в приведенной ситуации? Или он тупо вообще для таких ситуаций не предназначен, и мне здесь про него можно забыть?
Автор: Ninza
Дата сообщения: 07.04.2007 12:08
Хай трудящимся!!!
Народ помогите! Как можно реализовать доступ к нескольким DB (одновременно) из приложения на VC++? Знаю как это сделать для доступа к одной DB, а для двух
Автор: Qraizer
Дата сообщения: 07.04.2007 15:10
xdude
Что значит, "как заставить"? Сменить последний параметр у SomeDataProcessing() на boost::bind_t<>. Передаёшь объект, так и принимай объект, а не указатель на функцию.
Автор: xdude
Дата сообщения: 07.04.2007 21:10
Qraizer

Цитата:
SomeDataProcessing()

Да, точно, именно это я и сделал бы. Только проблема в том, что SomeDataProcessing() - это библиотечная функция. И исходников библиотеки у меня, конечно же, нет. Насколько я понимаю, boost::bind может передавть колбэки даже в функции WinAPI, если определить какой-то дефайн (не помню точно, какой именно, кажется, что-то связанное с stdcall-ом). А с такой простой задачей он справиться не может?
Автор: Qraizer
Дата сообщения: 09.04.2007 14:25
Что-то я не пойму... Если ты юзаешь биндер, то наверное тебе понадобились его способности по внедрению параметров в состояние функционального объекта, или изменить синтаксис вызова callback-а, или отложить вызов с последующим его неоднократным использованием, или ещё что-то похожее. С другой стороны, ты используешь простую библиотечную функцию, которая в принципе не способна сосуществовать с функциональными объектами (ибо единственным возможным типом функтора считает только указатели на функцию) и следовательно делает невозможным применение этих возможностей... Можно конечно взять сырцы бустового биндера и добавить к ним операцию кастования к указателю на функцию, но разом снимет все плюсы от использования биндера. Что-то тут у тебя с дизайном проблемы, мне кажется. Ты можешь привести более подробное описание задачи? Что ты в конце концов хочешь от биндера?
Автор: Mickey_from_nsk
Дата сообщения: 10.04.2007 06:27
Ninza
А какие базы то? И что значит "организовать доступ"? И чем принципиально отличается доступ к одной базе от доступа к нескольким кроме количества объектов Connection?
Автор: Ninza
Дата сообщения: 10.04.2007 13:10
Базы однотипные (не распределенные), а "организовать доступ"-это значит иметь возможность редактирования кортежей из своей проги и с обновлением их в самой базе...И разве можно односвременно редактировать поля двух баз через объекты Connection?
Автор: doc58_81oB0t
Дата сообщения: 11.04.2007 08:43
проблема с памятью.. больше 36 таблиц не обрабатывает.. можно как-то решить или все переделывать?


Код:
#include <fstream.h>
#include <stdio.h>
#include <stdlib.h>
#include <iostream.h>
#include <conio.h>
#include <string.h>
#include <ctype.h>
#include <math.h>


const MAXLEN = 200;
const MAXMASS = 8000;
const int I = 200;
const int J = 200;
const double a = 3.8;
const double b = 0.7;

//------------------------------------------------------------------------------
//--------------------------Auxiliary functions---------------------------------


//---------------------Procedure of getting the substring-----------------------

void *substr(char *line, char *word, int startPos, int substrLen)
{
int i ;
for (i=0;i<startPos;i++)
{
line++;
}

for(i=0; i<substrLen; i++)
{
*word++ = *line++;
}
*word++ = '\0';

}

//---------------Function of getting the position of a symbol-------------------

int number(char *line, char *symbol)
{
int number;
int i;
char *symbol1;
symbol1 = new char[MAXLEN];
i = 0;
substr (line, symbol1, i, 1);
while ((*symbol1 != *symbol)&&(i!=strlen(line)))
{
i = i + 1;
substr(line, symbol1, i, 1);
}
if (i==strlen(line))
{
number = -1;
}
else {number = i;}
//delete symbol1;
return number;
}


//--------------------Procedure of shuffling the seqeuence----------------------


void shuffling(char *line1, char *line2)
{
int i, j, l, n, *mas1, *mas2;
char *line1copy;

line1copy = new char[MAXLEN];
line1copy = line1;
l = strlen(line1copy);
mas1 = new int[l];
mas2 = new int[l];

for (i=0; i<l; i++)
{
mas1[i] = i;
}


for (i=0; i<l; i++)
{
n = random(l-i);
mas2[i] = mas1[n];
for (j=n; j<l-i-1; j++)
{
mas1[j] = mas1[j+1];
}
}

for (i=0; i<l; i++)
{
line2[i] = line1[mas2[i]];
}
line2[l] = '\0';

for (i=0; i<l; i++)
{
*line1++=*line1copy++;
}
*line1++ = '\0';

delete[] line1copy;
delete[] mas1;
delete[] mas2;
}


//--------------------Procedure for finding "konsensus"-------------------------
//--------------------------of PWM----------------------------------------------

void find_kons(int L, double **t_matrix_PWM, char *kons)
{
int i, j;
double pwmmax=-12.00;
char *konstemp;
konstemp = new char[1];
char *s4="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
for (i=1; i<=L; i++, pwmmax=-12.00)
{
for (j=1; j<=26; j++)
{
if (t_matrix_PWM[i][j]>pwmmax)
{
pwmmax=t_matrix_PWM[i][j];
}
}

for (j=1; j<=26; j++)
{
if (t_matrix_PWM[i][j]==pwmmax)
{

substr(s4, konstemp, j-1,1);
kons[i] = *konstemp;
}
}
}
delete [] konstemp;
}


//-------------------Procedure of result output---------------------------------

void output(int L, char *str, char *kons)
{
int a, b, i, j, k,l, k1, kstart, jstart;
int k0, j0, kmax, jmax;
char *way;
char *coord;
char *tokenPtr;
char *tokenPtr1;
char *matrtemp[MAXLEN];
int count;

way = new char[40000];
tokenPtr = new char[MAXLEN];
tokenPtr1 = new char[MAXLEN];
coord = new char[15];
char *symboltemp;

double **t_matrix_way;
t_matrix_way = new double*[J];
for (i=0 ; i<I ; i++)
{
t_matrix_way[i] = new double[I];
}



symboltemp = new char[MAXLEN];
FILE *fpc;
fpc = fopen("coordinates.txt", "r");
fgets (coord, 15, fpc);

tokenPtr1 = strtok (coord, "_");
tokenPtr = strtok (tokenPtr1, "&");
k0 = atoi(tokenPtr);
tokenPtr = strtok (NULL, "&");
j0 = atoi(tokenPtr);
tokenPtr = strtok (NULL, "&");
kmax = atoi(tokenPtr);
tokenPtr = strtok (NULL, "&");
jmax = atoi(tokenPtr);
fclose(fpc);


FILE *fpw;
fpw = fopen("way.txt", "r");
fgets (way, 40000, fpw);
fclose(fpw);
k = k0;
tokenPtr = strtok (way, "_");
while (tokenPtr != NULL)
{
matrtemp[k] = tokenPtr;
k++;
tokenPtr = strtok (NULL, "_");
}
k1 = k-1;
j = j0;
for (k=k0; k<=k1; k++, j=j0)
{
tokenPtr1 = strtok (matrtemp[k], "&");
while (tokenPtr1 != NULL)
{
t_matrix_way[k][j] = atoi(tokenPtr1);
j++;
tokenPtr1 = strtok (NULL, "&");
}
}

delete []coord;
delete []way;
delete []tokenPtr;
delete []tokenPtr1;

FILE *fpo;
fpo = fopen("Result.txt", "a");


if (k0 == 0) {kstart = k0+1;}
else {kstart = k0;}
if (j0 == 0) {jstart = j0+1;}
else {jstart = j0;}



for (k=kstart;k<=kmax; k++)
{
for (j=jstart;j<=jmax;j++)
{
t_matrix_way[k][jstart-1]=0;
t_matrix_way[kstart-1][j]=0;
}
}
fprintf(fpc, "\n");

for (k=kstart; k<=kmax; k++)
{
for (j=jstart; j<=jmax; j++)
{
if (fmod(k,L)==0)
{i=L;}
else
{i=fmod(k,L);}

*symboltemp = kons[i];
if (t_matrix_way[k][j]==1)
{
fwrite(symboltemp,1,1,fpo);
fprintf(fpc, " ");
k++;
j++;
}
else
{
if (t_matrix_way[k][j]==2)
{
fprintf(fpc, "- ");
j++;
}
else
{
if (t_matrix_way[k][j]==3)
{
fwrite(symboltemp,1,1,fpo);
fprintf(fpc, " ");
k++;
}
else
{
if (k0==0)
{k++;}
if (j0==0)
{j++;}
}

}
}
}
}

fprintf(fpc, "\n");

for (k=kstart; k<=kmax; k++)
{
for (j=jstart; j<=jmax; j++)
{
if (t_matrix_way[k][j]==1)
{
substr(str, symboltemp, j-1,1);
fwrite(symboltemp,sizeof(symboltemp)-2,1,fpo);

k++;
j++;
}
else
{
if (t_matrix_way[k][j]==2)
{
substr(str, symboltemp, j-1,1);
fwrite(symboltemp,sizeof(symboltemp)-2,1,fpo);

j++;
}
else
{
if (t_matrix_way[k][j]==3)
{
fprintf(fpc, "- ");
k++;
}
else
{
if (k0==0)
{k++;}
if (j0==0)
{j++;}
}
}
}
}

}
fclose(fpo);
delete []symboltemp;
for (i=0 ; i<I ; i++)
{
delete[] t_matrix_way[i];
}
delete[] t_matrix_way;

}


//------------------------------------------------------------------------------
//----------------------Function of getting PWM from file-----------------------

void get_pwm(int num, double **t_matrix_PWM, char *name)
{
char *tokenPtr;
char *tokenPtr1;
char *matrtemp[27];
char *nametemp;
char *pwm;
char *strtemp;
char *s[5];
int i, k, j, l;

pwm = new char[MAXMASS];
strtemp = new char[MAXLEN];
nametemp = new char[MAXLEN];
tokenPtr = new char[MAXLEN];
tokenPtr1 = new char[MAXLEN];

FILE *fp;
itoa (num, strtemp, 10);
s[num] = strncat(strtemp, ".txt", 4);
fp = fopen(s[num], "r");
fgets (pwm, MAXMASS, fp);
fclose(fp);

k = 1;
j = 1;
nametemp = strtok (pwm, "_");

l = strlen(nametemp);
for(i=0; i<l; i++)
{
*name++ = *nametemp++;
}
*name++ = '\0';

tokenPtr = strtok (NULL, " ");
while (tokenPtr != NULL)
{
matrtemp[j] = tokenPtr;
j++;
tokenPtr = strtok (NULL, " ");
}
for (j=1; j<=26; j++)
{
tokenPtr1 = strtok (matrtemp[j], "&");
while (tokenPtr1 != NULL)
{
t_matrix_PWM[k][j] = atof(tokenPtr1);
k++;
tokenPtr1 = strtok (NULL, "&");
}
k=1;
}
delete[] nametemp;
// delete[] strtemp;
delete[] tokenPtr;
delete[] tokenPtr1;
// delete[] pwm;
}




//------------------------------------------------------------------------------
//-------------------Function of all the calculations---------------------------



double all_calc(int L, char *str, double **t_matrix_allign, double **t_matrix_way, double **t_matrix_PWM)
{
char *substr1;
substr1 = new char;
double Smax;
int kstart, jstart, kdel, jdel, w;
int kmax, jmax, k0, j0;
int kmaxcopy, jmaxcopy, k0copy, j0copy;
double weight;
double maxdelj, maxdelk;
int i, j, k, j1, l, m;
char *s4="ABCDEFGHIJKLMNOPQRSTUVWXYZ";



//------------------Filling the matrix of the similarity and--------------------
//-------------------------the matrix of the way--------------------------------

t_matrix_allign[0][0]=0;
t_matrix_way[0][0]=0;

for (k=1; k<=strlen(str); k++)
{
t_matrix_allign[k][0]=-a-b*(k-1);
t_matrix_way[k][0]= 3;
}

for (j=1; j<=strlen(str);j++)
{
t_matrix_allign[0][j]=-a-b*(j-1);
t_matrix_way[0][j]=2;
}


for (k=1;k<=strlen(str); k++)
{
for (j=1;j<=strlen(str);j++)
{
if (fmod(k,L)==0)
{i=L;}
else
{i=fmod(k,L);}

substr(str, substr1, j-1, 1);
j1 = number(s4, substr1)+1;

if (j>20)
{jdel=20;}
else
{jdel=j;}
if (k>20)
{kdel=20;}
else
{kdel=k;}


maxdelj=0;
for (l=1; l<=jdel; l++)
{
if (t_matrix_allign[k][j-l]-a-b*(l-1) > maxdelj)
{
maxdelj = t_matrix_allign[k][j-l]-a-b*(l-1);
}
}

maxdelk=0;
for (m=1; m<=kdel; m++)
{
if (t_matrix_allign[k-m][j]-a-b*(m-1) > maxdelk)
{
maxdelk = t_matrix_allign[k-m][j]-a-b*(m-1);
}
}

if ((t_matrix_allign[k-1][j-1]+t_matrix_PWM[i][j1]>=maxdelj)&&(t_matrix_allign[k-1][j-1]+t_matrix_PWM[i][j1]>0))
{
if (t_matrix_allign[k-1][j-1]+t_matrix_PWM[i][j1]>=maxdelk)
{
t_matrix_allign[k][j]=t_matrix_allign[k-1][j-1]+t_matrix_PWM[i][j1];
t_matrix_way[k][j]=1;
}
else
{
t_matrix_allign[k][j]= maxdelk;
t_matrix_way[k][j]=3;
}
}
else {if ((maxdelj>t_matrix_allign[k-1][j-1]+t_matrix_PWM[i][j1])&&(maxdelj>0))
{
if (maxdelj>=maxdelk)
{
t_matrix_allign[k][j]=maxdelj;
t_matrix_way[k][j]=2;
}
else
{
t_matrix_allign[k][j]= maxdelk;
t_matrix_way[k][j]=3;
}
}
else
{
t_matrix_allign[k][j]=0;
t_matrix_way[k][j]=0;
}
}


if (t_matrix_allign[k][j]>Smax)
{
Smax=t_matrix_allign[k][j];
}


}

}


//-------------------Finding coordinates of the way-----------------------------

for (k=1; k<=strlen(str); k++)
{
for (j=1; j<=strlen(str); j++)
{
if (t_matrix_allign[k][j]==Smax)
{
kmax=k;
jmax=j;

}
}

}


w=0;
k=kmax;
j=jmax;

while (t_matrix_way[k][j]>0)
{

if (t_matrix_way[k][j]==1)
{
k=k-1;
j=j-1;
w=w+1;
}
else {if (t_matrix_way[k][j]==2)
{

j=j-1;
w=w+1;

}
else
{
k=k-1;
w=w+1;

} }
}

if (w>0)
{
k0=k;
j0=j;
}


//-----------------Findind the weight of global allignment----------------------

if (k0 == 0) {kstart = k0+1;}
else {kstart = k0;}
if (j0 == 0) {jstart = j0+1;}
else {jstart = j0;}

for (k=kstart;k<=kmax; k++)
{
for (j=jstart;j<=jmax;j++)
{

t_matrix_allign[k][jstart-1]=0;
t_matrix_allign[kstart-1][j]=0;
t_matrix_way[k][jstart-1]=0;
t_matrix_way[kstart-1][j]=0;

}
}

for (k=kstart;k<=kmax; k++)
{
for (j=jstart;j<=jmax;j++)
{
if (fmod(k,L)==0)
{i=L;}
else
{i=fmod(k,L);}

substr(str, substr1, j-1, 1);
j1 = number(s4, substr1)+1;


if (j>20)
{jdel=20;}
else
{jdel=j;}
if (k>20)
{kdel=20;}
else
{kdel=k;}


maxdelj=0;
for (l=1; l<=jdel; l++)
{
if (t_matrix_allign[k][j-l]-a-b*(l-1) > maxdelj)
{
maxdelj = t_matrix_allign[k][j-l]-a-b*(l-1);
}
}

maxdelk=0;
for (m=1; m<=kdel; m++)
{
if (t_matrix_allign[k-m][j]-a-b*(m-1) > maxdelk)
{
maxdelk = t_matrix_allign[k-m][j]-a-b*(m-1);
}
}

if (t_matrix_allign[k-1][j-1]+t_matrix_PWM[i][j1]>=maxdelj)
{
if(t_matrix_allign[k-1][j-1]+t_matrix_PWM[i][j1]>=maxdelk)
{
t_matrix_allign[k][j]=t_matrix_allign[k-1][j-1]+t_matrix_PWM[i][j1];
t_matrix_way[k][j]=1;
}
else
{
t_matrix_allign[k][j]=maxdelk;
t_matrix_way[k][j]=3;
}
}
else
{
t_matrix_allign[k][j]=maxdelj;
t_matrix_way[k][j]=2;
}

}
}


weight=t_matrix_allign[kmax][jmax];

FILE *fpway;
fpway = fopen("lengh.txt", "w");
fprintf(fpway, "%.d", w);
//fprintf(fpway, "_");
fclose(fpway);

if (w>30)
{
FILE *fpc;
fpc = fopen("coordinates.txt", "w");
fprintf(fpc, "%.d", k0);
fprintf(fpc, "&");
fprintf(fpc, "%.d", j0);
fprintf(fpc, "&");
fprintf(fpc, "%.d", kmax);
fprintf(fpc, "&");
fprintf(fpc, "%.d", jmax);
fprintf(fpc, "_");
fclose(fpc);
int inttemp;


FILE *fpw;
fpw = fopen("way.txt", "w");
for (k= k0; k<=kmax; k++)
{
for (j=j0; j<=jmax; j++)
{
inttemp = t_matrix_way[k][j];
fprintf(fpw, "%.d", inttemp);
fprintf(fpw, "&");
}
fprintf(fpw, "_");
}
fclose(fpw);

}


return weight;
}


//----------------------Function of calculation---------------------------------
//--------------------the statistical significance------------------------------

double calc_stat_sign (int L, char *str, double **t_matrix_allign, double **t_matrix_way, double **t_matrix_PWM)
{

double Z, W;



W = all_calc(L, str, t_matrix_allign, t_matrix_way, t_matrix_PWM);

int w;
char *w1;
w1 = new char[6];
FILE *fpway;
fpway = fopen("lengh.txt", "r");
fgets (w1, 6, fpway);

w = atoi(w1);
fclose(fpway);
cout << "\nWay: " << w << endl;

if (w < 30)
{return -33;}
else
{
int i, j, k, l, Kmax=100;
double sum=0, sum2=0, aver=0, sigma=0;
double *W1;
W1 = new double[Kmax];
char *strnew;
strnew = new char[MAXLEN];
for (k=0; k<Kmax; k++)
{
shuffling(str, strnew);
W1[k]=all_calc(L, strnew, t_matrix_allign, t_matrix_way, t_matrix_PWM);
sum=sum+W1[k];
}

aver=sum/Kmax;
for (k=0; k<Kmax; k++)
{
sum2=sum2 + pow((W1[k]-aver), 2);

}
sigma=sqrt(sum2/(Kmax-1));
Z=(W - aver)/sigma;


delete[] strnew;
delete[] W1;

return Z;
}
}




//------------------------------------------------------------------------------
//--------------------------The main function-----------------------------------

void main(void)
{
randomize();
int i, k, j, L, l;
int nummax;
char *nummax1;
nummax1 = new char[5];
FILE *fpn;
fpn = fopen("nummax.txt", "r");
fgets (nummax1, 4, fpn);
nummax = atoi(nummax1);
fclose(fpn);
cout << "\nNummax: " << nummax << endl;

double W=0, Z;
double **t_matrix_PWM;
t_matrix_PWM = new double*[80];
for (i=0 ; i<80 ; i++)
{
t_matrix_PWM[i] = new double[80];
}

double **t_matrix_allign, **t_matrix_way;

t_matrix_allign = new double*[J];
t_matrix_way = new double*[J];

for (i=0 ; i<I ; i++)
{
t_matrix_allign[i] = new double[I];
t_matrix_way[i] = new double[I];
}

char *seq;
char *pwm;
char *name;
char *kons;
kons = new char[MAXLEN];
seq = new char[MAXLEN];
pwm = new char[MAXLEN];
name = new char[MAXLEN];

FILE *f;
f = fopen("sequence.txt", "r");
fgets (seq, 5000, f);
fclose(f);
cout << "Sequence: " << seq;

FILE *fpres;
fpres = fopen("Result.txt", "w");
fprintf(fpres, "\nYour sequence can be similar with such families:");
fprintf(fpres, "\n\n");
fclose(fpres);

for (i = 1; i<=37; i++) // Если взять 38 и больше, возникает ошибка!!!!
{for (j=0; j<80; j++)
{
for (k=0; k<80; k++)
{
t_matrix_PWM[k][j] = -33;
}
}


for (j=0; j<J; j++)
{
for (k=0; k<I; k++)
{
t_matrix_allign[k][j] = 0;
t_matrix_way[k][j] = 0;
}
}

get_pwm(i, t_matrix_PWM, name);
cout << "\nName of PWM: " << name;
l = strlen(name);
k = 1;
cout << "\n\n";
while (t_matrix_PWM[k][1] != -33)
{k++;}
L = k-1;
cout << "L = " << L;
cout << "\n\n";



find_kons(L, t_matrix_PWM, kons);

Z = calc_stat_sign(L, seq, t_matrix_allign, t_matrix_way, t_matrix_PWM);
cout << "Z = " << Z;

if (Z!=-33)
{
if (Z>6)
{
fpres = fopen("Result.txt", "a");
fprintf(fpres, "\n\n------------------------------------------------\n");
fwrite(name,sizeof(name),l,fpres);
fprintf(fpres, "\n\nAllignment:");
fclose(fpres);
output(L, seq, kons);
fpres = fopen("Result.txt", "a");
fprintf(fpres, "\n\nZ = %.3lf", Z);
fprintf(fpres, "\n\n------------------------------------------------");
fclose(fpres);
}
}
}

for (i=0 ; i<80 ; i++)
{
delete[] t_matrix_PWM[i];
}
delete[] t_matrix_PWM;

for (i=0 ; i<I ; i++)
{
delete[] t_matrix_allign[i];
delete[] t_matrix_way[i];
}
delete[] t_matrix_allign;
delete[] t_matrix_way;

fflush(stdin);
getch();
}
Автор: rain87
Дата сообщения: 11.04.2007 12:33
doc58_81oB0t
заюзай тег more
по поводу вопроса - чем компилишь? и в чём выражается проблема? (крэш, или компилятор ругается?)
Автор: doc58_81oB0t
Дата сообщения: 11.04.2007 14:47
я про проблему писал уже, алгоритм работает. Суть программы в том, что она берет данные из текстовых файлов 1.txt, 2.txt и т.д. и по очереди сравнивает их с аминокислотной последовательностью sequence.txt. Если проверить не 37, а больше файлов, то появляются ошибки памяти.. не знаю как решить.
Автор: TeXpert
Дата сообщения: 11.04.2007 16:49
doc58_81oB0t
Пост-то сожми, как уже советовали.
И -- вопрос

Цитата:
чем компилишь?

далеко не праздный, как и другие -- например, ОС, конфигурация машины. Уважай тех, кто хочет тебе помочь.
Автор: DD13
Дата сообщения: 11.04.2007 17:05

doc58_81oB0t

Цитата:
void get_pwm(int num, double **t_matrix_PWM, char *name)
....
char *s[5];
.....
s[num] = strncat(strtemp, ".txt", 4);


num может быть больше 5

Автор: NNS
Дата сообщения: 11.04.2007 17:40
Решил добавить к своей проге help. Замутил кучу Html файлов, скомплировал их при помощи Html Help Workshop в один chm файл. Теперь нужно сделать так, что бы в зависимости от того, какой radiobutton юзер отметит, справка вылезла на нужно странице. Т.е. юзер отмечает в окне радиботтон "Вася Пупкин" и справка открывается именно на странице с информацией о Васе Пупкине. Как это сделать?
Спасибо!
Автор: rain87
Дата сообщения: 11.04.2007 18:30
NNS
ShellExecute('mk:@MSITStore:D:\Мои%20документы\Мои%20текстовые%20документы\Programming\XAKEP\xa085.chm::/xa085/036/1.htm');
это первая идея, может как-то поизящней можно

и путь походу только абсолютный относительный не прокатывает почему-то
Автор: Jokerjar
Дата сообщения: 12.04.2007 07:42
Пусть берет нулевой параметр (путь к программе) и относительно его строит полный путь к справке.
Автор: rain87
Дата сообщения: 12.04.2007 08:09
не, ну это понятно просто относительный путь почему-то, хз почему не понимает
а то что из относительного можно сделать абсолютный - это ясно
Автор: NNS
Дата сообщения: 12.04.2007 10:44
rain87
ага, спасибо!
Jokerjar
Можно по-подробней, как это реализовать?
Автор: TeXpert
Дата сообщения: 12.04.2007 13:43
NNS

Цитата:
Можно по-подробней, как это реализовать?

Думаю, ничего страшного, если вместо него отвечу я: это параметр __argv[0], и это работает в функции WinMain, в консольных -- просто argv[0]. Но есть и рекомендуемые официально способы, смотри Рихтера.
Автор: doc58_81oB0t
Дата сообщения: 12.04.2007 15:27
компилирую борланд6, под winxp
Автор: rain87
Дата сообщения: 12.04.2007 17:58
doc58_81oB0t
ну а замечание DD13 ( http://forum.ru-board.com/topic.cgi?forum=33&topic=3174&start=1260#17 ) ? может там такое быть?
Автор: Mrcloner
Дата сообщения: 14.04.2007 18:45
Братья кодеры!!!
Помогите начинающему кодеру, как правильно задать глобальные переменные , что бы они видны были из разных модулей?
Например: глобальная переменная объявлена в модуле Unit1 и она должна видна быть в модуле Unit2
Помогите плиз!!!
Автор: TeXpert
Дата сообщения: 14.04.2007 20:01
Mrcloner
С юнитами ты не туда заплыл.
Автор: Mrcloner
Дата сообщения: 15.04.2007 15:03
TeXpert
почему не туда? поясни
Автор: TeXpert
Дата сообщения: 15.04.2007 15:14
Mrcloner
Читай шапку -- вернее, название. И ищи топик по Delphi.
Автор: Mrcloner
Дата сообщения: 16.04.2007 10:13
TeXpert
Так я пишу на С++ Builder!
мож я не правильно высказал вопрос, то сори!
Мене надо знать как объявить переменную что бы она была видна из разных форм
то бишь из формы "Form2" видна переменная формы "Form1"
Автор: Jokerjar
Дата сообщения: 16.04.2007 13:29
Mrcloner, задай свой вопрос тут

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193

Предыдущая тема: не знаю как назвать тему :-)


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.