All pastes #427781 Raw Edit

Miscellany

public text v1 · immutable
·published 2007-04-07 00:31 UTC
rendered paste body
//******************************************************************************

//******************************************************************************
import java.io.*;	//	pour lire les fichiers

public class HTML_Browser
{
    public static void main(String args[])
    {
	//	verification du nombre d'arguments
	
	if (args.length != 3)
	    {
		System.out.println("3 arguments svp!");
		System.exit(1);
	    }
	
	//	ouverture du ficher.  Le try/catch permet d'attraper
	//	les erreurs si java ne peut pas ouvrir le fichier
	BufferedReader file = null;
	try
	    {
		file = new BufferedReader(new FileReader(args[2]));
	    }
	catch(IOException e)
	    {
		//	oups! un erreur:
		System.out.println("Impossible d'ouvrir le fichier" + args[2]);
		System.out.println(e);
		System.exit(1);
	    }
	//	lecture du fichier ligne par ligne encore une fois, nous
	//	devons attraper les erreurs de lecture du fichier avec try/catch
	try
	    {
		String line = "";
		String texte = "";
		while((line = file.readLine()) != null)
		    {
			//System.out.println(line);
			texte += line;
		    }
		//System.out.println(texte);
		if(!(texte.substring(0,6).equals("<HTML>")))
		    {	   
			System.out.println("Ceci n'est pas une page HTML");
			System.exit(0);
		    }
		interpretation(texte);	    
	    }
	catch(IOException e)
	    {
		//	oups! un erreur:
		System.out.println("Erreur pendant la lecture de" + args[2]);
		System.out.println(e);
		System.exit(1);
	    }
    }

    public static void interpretation(String str)
    {
	int i = 0;
	int openingTag = 0;
	int closingTag = 0;
	String tagName = "";
	//String tagName2 = "";
	String aEnvoyer = "";
	while(!(tagName.equals("/HTML")))
	{
	    if(str.charAt(i) == '<')
		{
		    closingTag = str.indexOf(">",i);
		    tagName = str.substring(i+1,closingTag);
		    i = closingTag+1;
		}
	    if(tagName.equals("TITLE"))
		{
		    System.out.println("***** TITRE DE LA PAGE: *****");
		    openingTag = str.indexOf("<",closingTag);
		    aEnvoyer = str.substring(i,openingTag);
		    closingTag = str.indexOf(">",openingTag);
		    i = closingTag+1;
		    System.out.println(aEnvoyer); //fct align. gauche
		    System.out.println();
		}
	    else if(tagName.equals("BODY"))
		{
		    System.out.println("***** CORPS DE LA PAGE: *****");
		    while(!(tagName.equals("/BODY")))
			{
			    if(str.charAt(i) == '<')
				{
				    closingTag = str.indexOf(">",i);
				    tagName = str.substring(i+1,closingTag);
				    i = closingTag+1; 
				}
			    
			    else
				{
				    aEnvoyer = "";
				    openingTag = str.indexOf("<",i);
				    closingTag = str.indexOf(">",openingTag);
				    tagName = str.substring(openingTag+1,closingTag);
				    aEnvoyer = str.substring(i,openingTag);
				    i = closingTag+1;
				    while(!(tagName.equals("H1") || tagName.equals("P") || tagName.equals("/BODY")))
					{
					    openingTag = str.indexOf("<",i);
					    closingTag = str.indexOf(">",openingTag);
					    aEnvoyer += str.substring(i,openingTag);
					    tagName = str.substring(openingTag+1,closingTag);
					    if(tagName.equals("B"))
						{
						    openingTag = str.indexOf("/B",closingTag)-1;
						    aEnvoyer += str.substring(closingTag+1,openingTag); //
						    closingTag = str.indexOf(">",openingTag);
						}
					    if(tagName.equals("I"))
						{
						    openingTag = str.indexOf("/I",closingTag)-1;
						    aEnvoyer += str.substring(closingTag+1,openingTag); //
						    closingTag = str.indexOf(">",openingTag);
						}
					    i = closingTag+1;
					}
				    System.out.println(aEnvoyer); // fct align.just.
				    System.out.println();
				}
			    if(tagName.equals("H1"))
				{
				    aEnvoyer = "";
				    while(!(tagName.equals("/H1")))
					{
					    openingTag = str.indexOf("<",i);
					    closingTag = str.indexOf(">",openingTag);
					    aEnvoyer += str.substring(i,openingTag);
					    tagName = str.substring(openingTag+1,closingTag);
					    if(tagName.equals("B"))
						{
						    openingTag = str.indexOf("/B",closingTag)-1;
						    aEnvoyer += str.substring(closingTag+1,openingTag); //
						    closingTag = str.indexOf(">",openingTag);
						}
					    if(tagName.equals("I"))
						{
						    openingTag = str.indexOf("/I",closingTag)-1;
						    aEnvoyer += str.substring(closingTag+1,openingTag); //
						    closingTag = str.indexOf(">",openingTag);
						}
					    i = closingTag+1;
					}
				    System.out.println(aEnvoyer); // fct align.gauche
				    System.out.println();
				}
			    if(tagName.equals("P"))
				{
				    aEnvoyer = "";
				    while(!(tagName.equals("/P")))
					{
					    openingTag = str.indexOf("<",i);
					    closingTag = str.indexOf(">",openingTag);
					    aEnvoyer += str.substring(i,openingTag);
					    tagName = str.substring(openingTag+1,closingTag);
					    if(tagName.equals("B"))
						{
						    openingTag = str.indexOf("/B",closingTag)-1;
						    aEnvoyer += str.substring(closingTag+1,openingTag); //
						    closingTag = str.indexOf(">",openingTag);
						}
					    if(tagName.equals("I"))
						{
						    openingTag = str.indexOf("/I",closingTag)-1;
						    aEnvoyer += str.substring(closingTag+1,openingTag); //
						    closingTag = str.indexOf(">",openingTag);
						}
					    i = closingTag+1;
					}
				    System.out.println(aEnvoyer); // fct align.just.
				    System.out.println();
				}
			}
		}
	}
    }
    
}