Вниз
Скачать: CL | DM;

Оцените кусок кода на C++   Найти похожие ветки 

 
igorr ©   (2003-02-26 14:16) [0]

Эта функция меняет ссылки вида file.php?11 на file11.php
для просмотра в offline.
Если есть ошибки по стилю написания кода, укажите pls


void CReplaceRefDlg::OnBtnstart()
{
CString filename,filename2;
FILE *infile,*outfile;
int ch5,ch4,ch3,ch2,ch1,ch; // для поиска .php?N

filename="C:\\file.html";
filename2=filename+"2";
if(CopyFile(filename,filename2,false) == 0){
MessageBox((CString)"File "+filename+" not found!","Error",MB_ICONEXCLAMATION);
exit(0);
}

infile=fopen(filename2,"r");
outfile=fopen(filename,"w");

ch5=getc(infile);
ch4=getc(infile);
ch3=getc(infile);
ch2=getc(infile);
ch1=getc(infile);

while((ch=getc(infile)) != EOF){
if(ch5=="." && ch4=="p" && ch3=="h" && ch2=="p" && ch1=="?" && isdigit(ch)){
while(isdigit(ch)){
putc(ch,outfile);
ch=getc(infile);
}
putc(".",outfile);
putc("p",outfile);
putc("h",outfile);
putc("p",outfile);
ch5=ch;
ch4=getc(infile);
ch3=getc(infile);
ch2=getc(infile);
ch1=getc(infile);
}
else{
putc(ch5,outfile);
ch5=ch4;
ch4=ch3;
ch3=ch2;
ch2=ch1;
ch1=ch;
}
}
putc(ch5,outfile);
putc(ch4,outfile);
putc(ch3,outfile);
putc(ch2,outfile);
putc(ch1,outfile);
putc(ch,outfile);

fclose(infile);
fclose(outfile);
DeleteFile(filename2);
MessageBox("References were changed.");
}


 
Andrey ©   (2003-02-26 14:26) [1]

>Оцените кусок кода
59 строк.


 
Дмитрий Баранов ©   (2003-02-26 14:26) [2]

Настоятельно советую пользоваться С++. Пример писать лень, но с использованием ifstream, ofstream, std::string и std::stringstream ваша программа будет работать ненамного медленнее, зато будет на порядок предсказуемее и устойчивей.
А так... Не проверяется фактическое открытие файлов, смесь С и С++ (используется CString и низкоуровненвые операции). Уж используйте тогда CFile и его производные.


 
Serious Sam   (2003-02-26 14:42) [3]

>Оцените кусок кода

59$



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.016 c
1-39368
Adolf
2003-03-02 15:59
2003.03.13
Зачеркивание txt


7-39613
TankMan1
2002-11-14 00:04
2003.03.13
Как отменить удаление файла с винта...


3-39177
KMI
2003-02-20 19:53
2003.03.13
БД и главное меню


3-39231
Ahmad K
2003-02-22 14:54
2003.03.13
Создание paradox альных таблиц.


4-39643
LaJolla
2003-01-22 17:08
2003.03.13
DOS в буфер обмена




   Наверх