НАВИГАЦИЯ
   Главная
  Программы для ПК [36]
  Программы для ПК-2 [3]
  Скрипты для WEB [8]
  Исходники на C, VC++, С++ Builder [12]
  Исходники на Basic [2]
  Исходники на Pascal [2]
  Исходники для микроконтроллеров [5]
  Электроника для дома [34]
  Электроника для аквариума [1]
  Электроника для автомобиля [11]
  Справочник [4]
  Разное [7]
  Проект "Умный дом"
  Файлы, библиотеки

  FAQ
  Рассылка новостей сайта

  Ссылки
  Сообщение автору

 
 
 
  Реальные знакомства по Украине, СНГ и за рубеж на любой вкус и цвет. Рассылка анкет. Помощь     Rambler's Top100  
ЗАДАЧА: Необходимо написать фукцию которая при чтение из файла находит слова (из заглавных букв) делает ссылку на абзац где ссылка находится. Затем это все сохраняет в html файлик с таблицей ссылок на вот эти самые абзацы., HTML_ss
Просмотров: 1356Дата изменения: 18.03.2007г.


/*
ЗАДАЧА:
Необходимо написать фукцию которая при чтение из файла
находит слова (из заглавных букв) делает ссылку на абзац где ссылка находится.
Затем это все сохраняет в html файлик с таблицей ссылок на вот эти самые абзацы.
*/
//---------------------------------------------------------------------------

#define MAX_LEN_STR 1000  // максимальная длина буфера чтения/записи

#pragma hdrstop
#include <iostream>
#include <string.h>
using namespace std;

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

#pragma argsused
int main(int argc, char* argv[])
{
  FILE *f,*fh,*tempFile;
  int a,npp,L;
  unsigned char *buf,*buf2;

  if(argc!=3) {
    cout << "Zapusk: HTML_ss.exe ImjaFailaIn ImjaFailaOut" << endl; cin.get(); return -1;
  }
  if((tempFile = tmpfile())==NULL){
    cout << "Oshibka sozdahija TMP-faila " << endl; cin.get(); return -1;
  }
  if((f=fopen(argv[1],"r"))==NULL){
    fclose(tempFile);
    cout << "Oshibka otkrytija faila \"" << argv[1] << "\"" << endl; cin.get(); return -1;
  }
  if((fh=fopen(argv[2],"w"))==NULL){
    fclose(tempFile); fclose(f);
    cout << "Oshibka sozdahija faila \"" << argv[2] << "\"" << endl; cin.get(); return -1;
  }
  buf  = new unsigned char[MAX_LEN_STR];
  buf2 = new unsigned char[MAX_LEN_STR];
  for(npp=0;fgets(buf,MAX_LEN_STR,f)!=NULL;){  // читаем в буфер
    L=strlen(buf);
    for(a=0;a<L;a++){
      if( (buf[a]>0x40 && buf[a]<0x5B) || //английские большие буквы
          (buf[a]>0xBF && buf[a]<0xE0) )  //русские большие буквы в Windows-кодировке
//          (buf[a]>0x7F && buf[a]<0xA0) )  //русские большие буквы в DOS-кодировке
        {
          fprintf(tempFile,"<a id=\"hr_%d\"></a>",npp); //пишем метку
          fprintf(fh,"<a href=\"#hr_%d\"\>Ссылка №%d</a><BR>\n",npp,npp+1); //пишем ссылку
          npp++;
          for(;a<L;a++){ //ищем конец слова
            fputc(buf[a],tempFile); //просто пишем посимвольно
            if(buf[a]==0x20 || buf[a]==9) break;
          }
      }
      else fputc(buf[a],tempFile); //просто пишем посимвольно
    }
  }
  fputs("<HR><CENTER>Исходный файл</CENTER><HR>",fh);
  fseek(tempFile, 0, 0); //в начало TMP-файла
//дописываем текстовый файл (который читали)
  while(!feof(tempFile)){
    fgets(buf,MAX_LEN_STR,tempFile); // считали в буфер
    fputs(buf,fh); //пишем
  }
  fclose(tempFile); fclose(f); fclose(fh);
  delete [] buf,buf2;
  return 0;
}
//---------------------------------------------------------------------------

 


Подпишитесь на рассылку новостей сайта!
Использование материалов возможно только при разрешении автора и с обязательным указанием ссылки на сайт vovka.sv19.com
Programmed by Vladimir Sharapov © 2004-2017 http://vovka.sv19.com