Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare
Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare
Abbiamo messo alla prova il drone Antigravity A1 capace di riprese in 8K a 360° che permette un reframe in post-produzione ad eliche ferme. Il concetto è molto valido, permette al pilota di concentrarsi sul volo e le manovre in tutta sicurezza e decidere con tutta tranquillità come gestire le riprese. La qualità dei video, tuttavia, ha bisogno di uno step in più per essere competitiva
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Dopo oltre 4 anni si rinnova la serie Sony Alpha 7 con la quinta generazione, che porta in dote veramente tante novità a partire dai 30fps e dal nuovo sensore partially stacked da 33Mpixel. L'abbiamo provata per un breve periodo, ecco come è andata dopo averla messa alle strette.
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1
realme e Aston Martin Aramco F1 Team si sono (ri)unite dando alla vita un flagship con chip Snapdragon 8 Elite Gen 5 e design esclusivo ispirato alle monoposto di Formula 1. La Dream Edition introduce la nuova colorazione Lime Essence abbinata al tradizionale Aston Martin Racing Green, decorazioni intercambiabili personalizzate e una confezione a tema F1, intorno a uno smartphone dall'ottima dotazione tecnica con batteria da 7000mAh ricaricabile a 120W e isola fotografica intercambiabile
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 22-04-2007, 15:07   #1
Matrixbob
Senior Member
 
L'Avatar di Matrixbob
 
Iscritto dal: Jul 2001
Messaggi: 9947
[C] Funzione che da XHTML\HTML trasformi in TEXT: X\HTML2TEXT.

Qualcosa di efficiente, semplice e senza tanti fronzoli.

Googlando qualcosa si trova, ad esempio questo:
http://userpage.fu-berlin.de/~mbayer...html2text.html

, ma è troppo complicato e dispersivo.
Senza contare che ne MinWG ne CigWin riescono a terminare la compilazione.
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<<
Più largo è il sorriso, più affilato è il coltello.
Matrixbob è offline   Rispondi citando il messaggio o parte di esso
Old 22-04-2007, 15:58   #2
lovaz
Senior Member
 
L'Avatar di lovaz
 
Iscritto dal: Jul 2002
Messaggi: 4334
Prova questo:
http://www.nirsoft.net/utils/htmlastext.html

Dovrebbe andare anche da command line
lovaz è offline   Rispondi citando il messaggio o parte di esso
Old 22-04-2007, 16:22   #3
Matrixbob
Senior Member
 
L'Avatar di Matrixbob
 
Iscritto dal: Jul 2001
Messaggi: 9947
Quote:
Originariamente inviato da lovaz Guarda i messaggi
Prova questo:
http://www.nirsoft.net/utils/htmlastext.html

Dovrebbe andare anche da command line
E' 1 freeware non open source.
Preferivo qualcosa che sia tipo 1 libreria da fare:
include "x-html2txt.c" nel mio Main.
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<<
Più largo è il sorriso, più affilato è il coltello.
Matrixbob è offline   Rispondi citando il messaggio o parte di esso
Old 22-04-2007, 16:40   #4
Matrixbob
Senior Member
 
L'Avatar di Matrixbob
 
Iscritto dal: Jul 2001
Messaggi: 9947
Chiedo a voi perchè magari qualcuno ci è già passato e perchè cercare tutte queste possibili keyword con attenzione è 1 po' ardua:
HTML2TXT, htmltotxt, html_to_txt, html_convert, txt_convert, HTML markup remover, html_tool.

... e poi tutto com la X innanzi.
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<<
Più largo è il sorriso, più affilato è il coltello.

Ultima modifica di Matrixbob : 22-04-2007 alle 16:55.
Matrixbob è offline   Rispondi citando il messaggio o parte di esso
Old 22-04-2007, 17:25   #5
Matrixbob
Senior Member
 
L'Avatar di Matrixbob
 
Iscritto dal: Jul 2001
Messaggi: 9947
Neanche:
http://code.google.com/

trova qualcosa di "buono".
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<<
Più largo è il sorriso, più affilato è il coltello.
Matrixbob è offline   Rispondi citando il messaggio o parte di esso
Old 22-04-2007, 22:33   #6
Matrixbob
Senior Member
 
L'Avatar di Matrixbob
 
Iscritto dal: Jul 2001
Messaggi: 9947
quello che ho trovato NON pulisce questa robaccia
Codice HTML:
<div class="feedflare">
<a href="http://feeds.wsjonline.com/~f/wsj/xml/rss/3_7011?a=BLH6Vx1e><img
src="http://feeds.wsjonline.com/~f/wsj/xml/rss/3_7011?i=BLH6Vx1e" border="0"></img></a>
<a href="http://feeds.wsjonline.com/~f/wsj/xml/rss/3_7011?a=Tifvjja7"><img
src="http://feeds.wsjonline.com/~f/wsj/xml/rss/3_7011?i=Tifvjja7" border="0"></img></a>
<a href="http://feeds.wsjonline.com/~f/wsj/xml/rss/3_7011?a=IHlNc3H8"><img
src="http://feeds.wsjonline.com/~f/wsj/xml/rss/3_7011?i=IHlNc3H8" border="0"></img></a>
<a href="http://feeds.wsjonline.com/~f/wsj/xml/rss/3_7011?a=MEhhYBSl"><img
src="http://feeds.wsjonline.com/~f/wsj/xml/rss/3_7011?i=MEhhYBSl" border="0"></img></a>
</div>
<img src="http://feeds.wsjonline.com/~r/wsj/xml/rss/3_7011/~4/110997774" height="1" width="1"/>
Ma che è 1 mix tra HTML ed XHTML?!
Non mi pare puramente nessuno dei 2.
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<<
Più largo è il sorriso, più affilato è il coltello.
Matrixbob è offline   Rispondi citando il messaggio o parte di esso
Old 23-04-2007, 18:51   #7
Matrixbob
Senior Member
 
L'Avatar di Matrixbob
 
Iscritto dal: Jul 2001
Messaggi: 9947
Ho trovato la "funzione/programma" che leggerete a seguire.
Ma già nel "main" c'è qualcosa che non mi piace ed è questo:
Codice:
RBuffer = (char*) malloc( BUFFER_LEN );
   while( fgets( RBuffer, BUFFER_LEN, InFile ) != NULL ){
      dfConvert( RBuffer );
      fputs( RBuffer, OutFile );
   }// endwhile
   free( RBuffer );
fgets mi pare sia 1 funzione che legge al MAX quel tot_caratteri dopo di che si ferma.
Se il file è + lungo allora son cavoli e bisogna modificare la MACRO.
Giusto?!

Codice:
/*
 * HTML2TXT
 *
 * Copyright 2000 Matteo Baccan <[email protected]>
 * www - http://www.infomedia.it/artic/Baccan
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA (or visit
 * their web site at http://www.gnu.org/).
 *
 */

#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <io.h>

#define BUFFER_LEN   4096 // buffer lenght
#define CV_EXITPARA     1 // parameter error
#define CV_EXITOPEN     2 // open error
#define CV_EXITEXIST    3 // file exist

void dfPrintLogo(void);      // logo
void dfPrintInfo(void);      // parameter info
void dfPrintOpenError( const char * InFile ); // open error
void dfPrintExist( const char * OutFile );    // file Exist
void dfConvert( char * Buffer );  // convert string
int dfCheckChar( int iLen,
                 char *Buffer,
                 int iPointer,
                 char *Check,
                 int iCheckLen );

int main(int argc, char *argv[]) {
   FILE *InFile, *OutFile;     // file declaration
   char *RBuffer;              // Read Buffer

   if( argc < 3 ){                                 // check parameter
      dfPrintInfo();
      exit( CV_EXITPARA );
   }// endif

   dfPrintLogo();

   if( access( argv[2], 00 ) >= 0 ){               // file exist
      dfPrintExist( argv[2] );
      exit( CV_EXITEXIST );
   }// endif

   if( (InFile = fopen( argv[1], "r")) == NULL ){  // open file
      dfPrintOpenError( argv[1] );
      exit( CV_EXITOPEN );
   }// endif

   if( (OutFile = fopen( argv[2], "w")) == NULL ){ // create file
      dfPrintOpenError( argv[2] );
      exit( CV_EXITOPEN );
   }// endif

   printf("\n þ Reading %s\n", argv[1] );          // Convert

   RBuffer = (char*) malloc( BUFFER_LEN );
   while( fgets( RBuffer, BUFFER_LEN, InFile ) != NULL ){
      dfConvert( RBuffer );
      fputs( RBuffer, OutFile );
   }// endwhile
   free( RBuffer );

   printf("\n þ OK \n" );

   fclose( InFile );                               // Close File
   fclose( OutFile );
   return 0;

}// end of main


void dfPrintInfo(){
   printf("\n");
   printf("ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿\n");
   printf("³²±° HTML2TXT          Converter HTML  to TXT           Version  2.00 °±²³\n");
   printf("³²±° Copyright 1997-2000    The Wonderful Team    All Rights Reserved °±²³\n");
   printf("³²±° ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ °±²³\n");
   printf("³²±° Usage: HTML2TXT <InFile> <OutFile>                               °±²³\n");
   printf("³²±°                                                                  °±²³\n");
   printf("³²±° InFile  = File 2 convert into TXT                                °±²³\n");
   printf("³²±°                                                                  °±²³\n");
   printf("³²±° OutFile = File 2 save                                            °±²³\n");
   printf("ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ\n");
}// end of print info

void dfPrintLogo(){
   printf("\n");
   printf("ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿\n");
   printf("³²±° HTML2TXT          Converter HTML  to TXT           Version  2.00 °±²³\n");
   printf("³²±° Copyright 1997-2000    The Wonderful Team    All Rights Reserved °±²³\n");
   printf("ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ\n");
}// end of print logo


void dfPrintOpenError( const char * InFile ){
   printf("\n þ Error opening file %s\n", InFile );
}// end of print error


void dfPrintExist( const char * OutFile ){
   printf("\n þ Output file %s Exist \n", OutFile );
}// end of print Exist


void dfConvert( char * Buffer ){
   static int iStart=0;
   int  iPos,iPointer;
   int  iLen=strlen( Buffer );

   iPos=iPointer=0;
   while( iLen-->0 ){
      iPointer++;

      // BlockQuote
      if( dfCheckChar( iLen, Buffer, iPointer, "<BLOCKQUOTE>", 12 ) ){
          Buffer[iPos++]='"';
          iPointer+=11;
          continue;
      }
      if( dfCheckChar( iLen, Buffer, iPointer, "</BLOCKQUOTE>", 13 ) ){
          Buffer[iPos++]='"';
          iPointer+=12;
          continue;
      }

      // LineBreak
      if( dfCheckChar( iLen, Buffer, iPointer, "<BR>", 4 ) ){
          Buffer[iPos++]=0x0d;
          iPointer+=3;
          continue;
      }
      if( dfCheckChar( iLen, Buffer, iPointer, "</BR>", 5 ) ){
          Buffer[iPos++]=0x0d;
          iPointer+=4;
          continue;
      }

      // Citation
      if( dfCheckChar( iLen, Buffer, iPointer, "<CITE>", 6 ) ){
          Buffer[iPos++]='"';
          iPointer+=5;
          continue;
      }
      if( dfCheckChar( iLen, Buffer, iPointer, "</CITE>", 7 ) ){
          Buffer[iPos++]='"';
          iPointer+=6;
          continue;
      }

      // Tab
      if( dfCheckChar( iLen, Buffer, iPointer, "<TD>", 4 ) ){
          Buffer[iPos++]=9;
          iPointer+=3;
          continue;
      }
      if( dfCheckChar( iLen, Buffer, iPointer, "</TD>", 5 ) ){
          Buffer[iPos++]=9;
          iPointer+=4;
          continue;
      }

      // HTML Command Skipper
      if( Buffer[iPointer-1]=='<' ){
         if( Buffer[iPointer]!='\0' ){
            if( Buffer[iPointer]>='a' && Buffer[iPointer]<='z' ) iStart=1;
            if( Buffer[iPointer]>='A' && Buffer[iPointer]<='Z' ) iStart=1;
            if( Buffer[iPointer]=='!'                          ) iStart=1;
            if( Buffer[iPointer]=='/'                          ) iStart=1;
         }
      }
      if( Buffer[iPointer-1]=='>'&& iStart==1 ) {
         iStart=0;
         continue;
      }

      if( iStart==0 ){
         if( Buffer[iPointer-1]=='&' ){
            if( dfCheckChar( iLen, Buffer, iPointer, "&lt;"     , 4 ) ){ Buffer[iPos++]='<'; iPointer+=3; continue; } //4
            if( dfCheckChar( iLen, Buffer, iPointer, "&gt;"     , 4 ) ){ Buffer[iPos++]='>'; iPointer+=3; continue; } //4
            if( dfCheckChar( iLen, Buffer, iPointer, "&amp;"    , 5 ) ){ Buffer[iPos++]='&'; iPointer+=4; continue; } //5
            if( dfCheckChar( iLen, Buffer, iPointer, "&quot;"   , 6 ) ){ Buffer[iPos++]='"'; iPointer+=5; continue; } //6
            if( dfCheckChar( iLen, Buffer, iPointer, "&Aacute;" , 8 ) ){ Buffer[iPos++]=' '; iPointer+=7; continue; } //8
            if( dfCheckChar( iLen, Buffer, iPointer, "&Agrave;" , 8 ) ){ Buffer[iPos++]='…'; iPointer+=7; continue; } //8
            if( dfCheckChar( iLen, Buffer, iPointer, "&Acirc;"  , 7 ) ){ Buffer[iPos++]='ƒ'; iPointer+=6; continue; } //7
            if( dfCheckChar( iLen, Buffer, iPointer, "&Atilde;" , 8 ) ){ Buffer[iPos++]='†'; iPointer+=7; continue; } //8
            if( dfCheckChar( iLen, Buffer, iPointer, "&Aring;"  , 7 ) ){ Buffer[iPos++]=''; iPointer+=6; continue; } //7
            if( dfCheckChar( iLen, Buffer, iPointer, "&Auml;"   , 6 ) ){ Buffer[iPos++]='„'; iPointer+=5; continue; } //6
            if( dfCheckChar( iLen, Buffer, iPointer, "&AElig;"  , 7 ) ){ Buffer[iPos++]='’'; iPointer+=6; continue; } //7
            if( dfCheckChar( iLen, Buffer, iPointer, "&Ccedil;" , 8 ) ){ Buffer[iPos++]='‡'; iPointer+=7; continue; } //8
            if( dfCheckChar( iLen, Buffer, iPointer, "&Eacute;" , 8 ) ){ Buffer[iPos++]='‚'; iPointer+=7; continue; } //8
            if( dfCheckChar( iLen, Buffer, iPointer, "&Egrave;" , 8 ) ){ Buffer[iPos++]='Š'; iPointer+=7; continue; } //8
            if( dfCheckChar( iLen, Buffer, iPointer, "&Ecirc;"  , 7 ) ){ Buffer[iPos++]='ˆ'; iPointer+=6; continue; } //7
            if( dfCheckChar( iLen, Buffer, iPointer, "&Euml;"   , 6 ) ){ Buffer[iPos++]='‰'; iPointer+=5; continue; } //6
            if( dfCheckChar( iLen, Buffer, iPointer, "&Iacute;" , 8 ) ){ Buffer[iPos++]='¡'; iPointer+=7; continue; } //8
            if( dfCheckChar( iLen, Buffer, iPointer, "&Igrave;" , 8 ) ){ Buffer[iPos++]=''; iPointer+=7; continue; } //8
            if( dfCheckChar( iLen, Buffer, iPointer, "&Icirc;"  , 7 ) ){ Buffer[iPos++]='Œ'; iPointer+=6; continue; } //7
            if( dfCheckChar( iLen, Buffer, iPointer, "&Iuml;"   , 6 ) ){ Buffer[iPos++]='‹'; iPointer+=5; continue; } //6
            if( dfCheckChar( iLen, Buffer, iPointer, "&ETH;"    , 5 ) ){ Buffer[iPos++]='Ñ'; iPointer+=4; continue; } //5
            if( dfCheckChar( iLen, Buffer, iPointer, "&Ntilde;" , 8 ) ){ Buffer[iPos++]='¤'; iPointer+=7; continue; } //8
            if( dfCheckChar( iLen, Buffer, iPointer, "&Oacute;" , 8 ) ){ Buffer[iPos++]='¢'; iPointer+=7; continue; } //8
            if( dfCheckChar( iLen, Buffer, iPointer, "&Ograve;" , 8 ) ){ Buffer[iPos++]='•'; iPointer+=7; continue; } //8
            if( dfCheckChar( iLen, Buffer, iPointer, "&Ocirc;"  , 7 ) ){ Buffer[iPos++]='“'; iPointer+=6; continue; } //7
            if( dfCheckChar( iLen, Buffer, iPointer, "&Otilde;" , 8 ) ){ Buffer[iPos++]='”'; iPointer+=7; continue; } //8
            if( dfCheckChar( iLen, Buffer, iPointer, "&Ouml;"   , 6 ) ){ Buffer[iPos++]='”'; iPointer+=5; continue; } //6
            if( dfCheckChar( iLen, Buffer, iPointer, "&Oslash;" , 8 ) ){ Buffer[iPos++]='0'; iPointer+=7; continue; } //8
            if( dfCheckChar( iLen, Buffer, iPointer, "&Uacute;" , 8 ) ){ Buffer[iPos++]='£'; iPointer+=7; continue; } //8
            if( dfCheckChar( iLen, Buffer, iPointer, "&Ugrave;" , 8 ) ){ Buffer[iPos++]='—'; iPointer+=7; continue; } //8
            if( dfCheckChar( iLen, Buffer, iPointer, "&Ucirc;"  , 7 ) ){ Buffer[iPos++]='–'; iPointer+=6; continue; } //7
            if( dfCheckChar( iLen, Buffer, iPointer, "&Uuml;"   , 6 ) ){ Buffer[iPos++]=''; iPointer+=5; continue; } //6
            if( dfCheckChar( iLen, Buffer, iPointer, "&Yacute;" , 8 ) ){ Buffer[iPos++]='Y'; iPointer+=7; continue; } //8
            if( dfCheckChar( iLen, Buffer, iPointer, "&THORN;"  , 7 ) ){ Buffer[iPos++]='è'; iPointer+=6; continue; } //7
            if( dfCheckChar( iLen, Buffer, iPointer, "&szlig;"  , 7 ) ){ Buffer[iPos++]='á'; iPointer+=6; continue; } //7
            if( dfCheckChar( iLen, Buffer, iPointer, "&aacute;" , 8 ) ){ Buffer[iPos++]=' '; iPointer+=7; continue; } //8
            if( dfCheckChar( iLen, Buffer, iPointer, "&agrave;" , 8 ) ){ Buffer[iPos++]='…'; iPointer+=7; continue; } //8
            if( dfCheckChar( iLen, Buffer, iPointer, "&acirc;"  , 7 ) ){ Buffer[iPos++]='ƒ'; iPointer+=6; continue; } //7
            if( dfCheckChar( iLen, Buffer, iPointer, "&atilde;" , 8 ) ){ Buffer[iPos++]='†'; iPointer+=7; continue; } //8
            if( dfCheckChar( iLen, Buffer, iPointer, "&aring;"  , 7 ) ){ Buffer[iPos++]=''; iPointer+=6; continue; } //7
            if( dfCheckChar( iLen, Buffer, iPointer, "&auml;"   , 6 ) ){ Buffer[iPos++]='„'; iPointer+=5; continue; } //6
            if( dfCheckChar( iLen, Buffer, iPointer, "&aelig;"  , 7 ) ){ Buffer[iPos++]='‘'; iPointer+=6; continue; } //7
            if( dfCheckChar( iLen, Buffer, iPointer, "&ccedil;" , 8 ) ){ Buffer[iPos++]='‡'; iPointer+=7; continue; } //8
            if( dfCheckChar( iLen, Buffer, iPointer, "&eacute;" , 8 ) ){ Buffer[iPos++]='‚'; iPointer+=7; continue; } //8
            if( dfCheckChar( iLen, Buffer, iPointer, "&egrave;" , 8 ) ){ Buffer[iPos++]='Š'; iPointer+=7; continue; } //8
            if( dfCheckChar( iLen, Buffer, iPointer, "&ecirc;"  , 7 ) ){ Buffer[iPos++]='ˆ'; iPointer+=6; continue; } //7
            if( dfCheckChar( iLen, Buffer, iPointer, "&euml;"   , 6 ) ){ Buffer[iPos++]='‰'; iPointer+=5; continue; } //6
            if( dfCheckChar( iLen, Buffer, iPointer, "&iacute;" , 8 ) ){ Buffer[iPos++]='¡'; iPointer+=7; continue; } //8
            if( dfCheckChar( iLen, Buffer, iPointer, "&igrave;" , 8 ) ){ Buffer[iPos++]=''; iPointer+=7; continue; } //8
            if( dfCheckChar( iLen, Buffer, iPointer, "&icirc;"  , 7 ) ){ Buffer[iPos++]='Œ'; iPointer+=6; continue; } //7
            if( dfCheckChar( iLen, Buffer, iPointer, "&iuml;"   , 6 ) ){ Buffer[iPos++]='‹'; iPointer+=5; continue; } //6
            if( dfCheckChar( iLen, Buffer, iPointer, "&eth;"    , 5 ) ){ Buffer[iPos++]='Ñ'; iPointer+=4; continue; } //5
            if( dfCheckChar( iLen, Buffer, iPointer, "&ntilde;" , 8 ) ){ Buffer[iPos++]='¤'; iPointer+=7; continue; } //8
            if( dfCheckChar( iLen, Buffer, iPointer, "&oacute;" , 8 ) ){ Buffer[iPos++]='¢'; iPointer+=7; continue; } //8
            if( dfCheckChar( iLen, Buffer, iPointer, "&ograve;" , 8 ) ){ Buffer[iPos++]='•'; iPointer+=7; continue; } //8
            if( dfCheckChar( iLen, Buffer, iPointer, "&ocirc;"  , 7 ) ){ Buffer[iPos++]='“'; iPointer+=6; continue; } //7
            if( dfCheckChar( iLen, Buffer, iPointer, "&otilde;" , 8 ) ){ Buffer[iPos++]='”'; iPointer+=7; continue; } //8
            if( dfCheckChar( iLen, Buffer, iPointer, "&ouml;"   , 6 ) ){ Buffer[iPos++]='”'; iPointer+=5; continue; } //6
            if( dfCheckChar( iLen, Buffer, iPointer, "&oslash;" , 8 ) ){ Buffer[iPos++]='0'; iPointer+=7; continue; } //8
            if( dfCheckChar( iLen, Buffer, iPointer, "&uacute;" , 8 ) ){ Buffer[iPos++]='£'; iPointer+=7; continue; } //8
            if( dfCheckChar( iLen, Buffer, iPointer, "&ugrave;" , 8 ) ){ Buffer[iPos++]='—'; iPointer+=7; continue; } //8
            if( dfCheckChar( iLen, Buffer, iPointer, "&ucirc;"  , 7 ) ){ Buffer[iPos++]='–'; iPointer+=6; continue; } //7
            if( dfCheckChar( iLen, Buffer, iPointer, "&uuml;"   , 6 ) ){ Buffer[iPos++]=''; iPointer+=5; continue; } //6
            if( dfCheckChar( iLen, Buffer, iPointer, "&yacute;" , 8 ) ){ Buffer[iPos++]='Y'; iPointer+=7; continue; } //8
            if( dfCheckChar( iLen, Buffer, iPointer, "&thorn;"  , 7 ) ){ Buffer[iPos++]='è'; iPointer+=6; continue; } //7
            if( dfCheckChar( iLen, Buffer, iPointer, "&yuml;"   , 6 ) ){ Buffer[iPos++]='˜'; iPointer+=5; continue; } //6
            if( dfCheckChar( iLen, Buffer, iPointer, "&reg;"    , 5 ) ){ Buffer[iPos++]='(';
                                                                         Buffer[iPos++]='r';
                                                                         Buffer[iPos++]=')'; iPointer+=4; continue; } //5
            if( dfCheckChar( iLen, Buffer, iPointer, "&copy;"   , 6 ) ){ Buffer[iPos++]='(';
                                                                         Buffer[iPos++]='c';
                                                                         Buffer[iPos++]=')'; iPointer+=5; continue; } //6
            if( dfCheckChar( iLen, Buffer, iPointer, "&trade;"  , 7 ) ){ Buffer[iPos++]='t';
                                                                         Buffer[iPos++]='m'; iPointer+=6; continue; } //7
            if( dfCheckChar( iLen, Buffer, iPointer, "&nbsp;"   , 6 ) ){ Buffer[iPos++]='	'; iPointer+=5; continue; } //6

            // &#number
            if( Buffer[iPointer]=='#' ){
               // May be a Number
               int nCount = 0;
               while( iLen-(nCount+1)>0              && // I have char?
                      Buffer[iPointer+1+nCount]>='0' && // Are number ?
                      Buffer[iPointer+1+nCount]<='9' ){
                  nCount++;
               }

               // If I have number .. try to cenvert it
               if( nCount>0 ){
                  int nDmm  = 0;
                  int nChar = 0;
                  int nMul  = 1;
                  while( nDmm<nCount ){
                     nChar += (Buffer[iPointer+nCount-nDmm]-48)*nMul;
                     printf( "%d\n", Buffer[iPointer+nCount-nDmm]-48 );
                     printf( "%d\n", nMul );
                     nMul  *= 10;
                     nDmm++;
                  }
                  if( nChar>0 ){
                     Buffer[iPos++]=nChar;
                     iPointer+=nDmm+1;
                     continue;
                  }
               }
            }
         }

         if( Buffer[iPointer-1]==0x0d &&
             Buffer[iPointer  ]==0x0d ){
             iPointer++;
             continue;
         }

         Buffer[iPos++]=Buffer[iPointer-1];
      }
   }
   Buffer[iPos++]='\0';
}

// convert string
int dfCheckChar( int iLen,
                 char *Buffer,
                 int iPointer,
                 char *Check,
                 int iCheckLen ){

   int iRet=0;
   if( iLen+1 >= iCheckLen ){
      iPointer--;
      while( *Check!='\0' ){
         if(  Buffer[iPointer]    ==*Check ||
             (Buffer[iPointer]|32)==*Check ){
           iPointer++;
           Check++;
         } else break;
      }
      iRet = (*Check==0 || *Check==13 || *Check==';' || *Check==' ');
   }

   return iRet;
}
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<<
Più largo è il sorriso, più affilato è il coltello.

Ultima modifica di Matrixbob : 23-04-2007 alle 19:14.
Matrixbob è offline   Rispondi citando il messaggio o parte di esso
Old 23-04-2007, 19:13   #8
Matrixbob
Senior Member
 
L'Avatar di Matrixbob
 
Iscritto dal: Jul 2001
Messaggi: 9947
Ho accantonato quella perchè pensavo che la mia sia meglio, ma anche la mia s'impianta.

[NB]
Quello che segue è solo la parte che da problemi del mio programma.
Codice:
int crea_mod_file(char *infile, char *outfile)
{
FILE *fp_infile, *fp_outfile;
char a, *tmp_string, *new_string;
int i=0;

if((fp_infile = fopen(infile, "r")) == NULL)
    {
    printf("\nError opening file %s.\n", infile);
    return -1;
    }

if((fp_outfile = fopen(outfile, "w")) == NULL)
    { // create file
    printf("\nError opening file %s.\n", outfile);
    return -2;
    }

tmp_string=(char*) malloc(SIZEBUF);
memset(tmp_string, 0, SIZEBUF);

while((fgets(tmp_string, (SIZEBUF-1), fp_infile))!=NULL)
    {
    new_string=mod_escaped_html(tmp_string);
    fputs(new_string, fp_outfile);
    memset(tmp_string, 0, SIZEBUF);
    }

free(tmp_string);
fclose(fp_infile);
fclose(fp_outfile);
return 0;
}
/******************************/

/* Funzione che conforma i cartatteri di una stringa */
char *mod_escaped_html(char *tmp_buffer)
{
tmp_buffer = subst_string(tmp_buffer, "&lt;", "<");
tmp_buffer = subst_string(tmp_buffer, "&gt;", ">");
tmp_buffer = subst_string(tmp_buffer, "&nbsp;", " ");
tmp_buffer = subst_string(tmp_buffer, "&agrave;", "à");
tmp_buffer = subst_string(tmp_buffer, "&egrave;", "è");
tmp_buffer = subst_string(tmp_buffer, "&eacute;", "é");
tmp_buffer = subst_string(tmp_buffer, "&igrave;", "ì");
tmp_buffer = subst_string(tmp_buffer, "&ograve;", "ò");
tmp_buffer = subst_string(tmp_buffer, "&ugrave;", "ù");
tmp_buffer = subst_string(tmp_buffer, "&laquo;", "<");
tmp_buffer = subst_string(tmp_buffer, "&raquo;", ">");
tmp_buffer = subst_string(tmp_buffer, ">", ">");
tmp_buffer = subst_string(tmp_buffer, "&deg;", "°");
tmp_buffer = subst_string(tmp_buffer, "&amp;", "&");
tmp_buffer = subst_string(tmp_buffer, "&rsquo;", "'");
tmp_buffer = subst_string(tmp_buffer, "&apos;", "'");
tmp_buffer = subst_string(tmp_buffer, "&quot;", "\"");
return tmp_buffer;
}
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<<
Più largo è il sorriso, più affilato è il coltello.

Ultima modifica di Matrixbob : 24-04-2007 alle 11:33.
Matrixbob è offline   Rispondi citando il messaggio o parte di esso
Old 23-04-2007, 19:15   #9
Matrixbob
Senior Member
 
L'Avatar di Matrixbob
 
Iscritto dal: Jul 2001
Messaggi: 9947
:edit:

Apparentemente risolto.
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<<
Più largo è il sorriso, più affilato è il coltello.

Ultima modifica di Matrixbob : 23-04-2007 alle 20:02.
Matrixbob è offline   Rispondi citando il messaggio o parte di esso
Old 24-04-2007, 09:41   #10
lovaz
Senior Member
 
L'Avatar di lovaz
 
Iscritto dal: Jul 2002
Messaggi: 4334
Quote:
Originariamente inviato da Matrixbob Guarda i messaggi
...
fgets mi pare sia 1 funzione che legge al MAX quel tot_caratteri dopo di che si ferma.
Se il file è + lungo allora son cavoli e bisogna modificare la MACRO.
Giusto?!
...
Non mi pare, e' un ciclo, finche' non e' finito il file continua a leggere...
lovaz è offline   Rispondi citando il messaggio o parte di esso
Old 24-04-2007, 10:09   #11
Matrixbob
Senior Member
 
L'Avatar di Matrixbob
 
Iscritto dal: Jul 2001
Messaggi: 9947
Quote:
Originariamente inviato da lovaz Guarda i messaggi
Non mi pare, e' un ciclo, finche' non e' finito il file continua a leggere...
Ma siamo sicuri che fgets legga 1 stringa e poi 1 altra e poi 1 altra?
Così non c'è il rischio di caricare 1/2 tag in memoria?!
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<<
Più largo è il sorriso, più affilato è il coltello.
Matrixbob è offline   Rispondi citando il messaggio o parte di esso
Old 24-04-2007, 10:23   #12
lovaz
Senior Member
 
L'Avatar di lovaz
 
Iscritto dal: Jul 2002
Messaggi: 4334
Si', legge una stringa alla volta, ma e' inserito in un ciclo while,
legge finche' non e' != NULL
lovaz è offline   Rispondi citando il messaggio o parte di esso
Old 24-04-2007, 10:26   #13
Matrixbob
Senior Member
 
L'Avatar di Matrixbob
 
Iscritto dal: Jul 2001
Messaggi: 9947
Quote:
Originariamente inviato da lovaz Guarda i messaggi
Si', legge una stringa alla volta, ma e' inserito in un ciclo while,
legge finche' non e' != NULL
Quindiha 1 puntatore di file alla stringa da leggere?
Io ho paura che li legga ogni volta la stessa stringa...
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<<
Più largo è il sorriso, più affilato è il coltello.
Matrixbob è offline   Rispondi citando il messaggio o parte di esso
Old 24-04-2007, 11:21   #14
lovaz
Senior Member
 
L'Avatar di lovaz
 
Iscritto dal: Jul 2002
Messaggi: 4334
Ma scusa, compila e provalo, cosi' vedi se converte giusto...
lovaz è offline   Rispondi citando il messaggio o parte di esso
Old 24-04-2007, 11:23   #15
Matrixbob
Senior Member
 
L'Avatar di Matrixbob
 
Iscritto dal: Jul 2001
Messaggi: 9947
Quote:
Originariamente inviato da lovaz Guarda i messaggi
Ma scusa, compila e provalo, cosi' vedi se converte giusto...
Si converte, ma secondo me c'è la possibilità di prendere 1/2 TAG nel caso il "Signore" o il "tool" che ha fatto la pagina web non abbia dato il "\n" nei momenti opportuni, ma alla caz.
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<<
Più largo è il sorriso, più affilato è il coltello.
Matrixbob è offline   Rispondi citando il messaggio o parte di esso
Old 24-04-2007, 11:26   #16
lovaz
Senior Member
 
L'Avatar di lovaz
 
Iscritto dal: Jul 2002
Messaggi: 4334
E prova, dagli un html con un tag "proprio li'", intorno alla posizione 4096
lovaz è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare Antigravity A1: drone futuristico per riprese a ...
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator Sony Alpha 7 V, anteprima e novità della ...
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1 realme GT 8 Pro Dream Edition: prestazioni da fl...
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum OVHcloud Summit 2025: le novità del cloud...
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI C...
Axiom Space ha completato un importante ...
Gli aeroplani Airbus utilizzeranno i sat...
Una nuova immagine della cometa interste...
'La soluzione a un problema che non esis...
Radeon RX 9000 sì, Ryzen 9000 no:...
Amazon versa 180 milioni al Fisco e canc...
Meta, il Board di Supervisione guarda o...
DJI rivoluziona le consegne aeree: il nu...
Fibercop e Microsoft Italia uniscono per...
App Store Award 2025: scarica le 17 app ...
NVIDIA fa marcia indietro, il supporto P...
Addio definitivo alla GeForce GTX 1080: ...
Numeri record per gli iPhone 17: Apple s...
L'Italia del 2025 raccontata da Google: ...
Piaggio lancia Porter NPE, il pick-up el...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 01:18.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v