Zum Inhalt springen

Hilfe bei Textausgabe


19nb84

Empfohlene Beiträge

Hilfe benötigt bei Textausgabe:

Wie kann ich mir den Text zwischen <p> und </p> ausgeben lassen?? Hab es schon mit substring probiert aber läuft irgendwie nicht!

Ich schreib grad an einer Anwendung, die aus einer Klasse sämtliche Artikelbeschreibungen auslesen soll. Jede Artikelbeschreibung steht eben in <p> </p> drin. Die Merker werden gesetzt aber irgendwie schaffe ich es nicht, mir den Text ausgeben zu lassen :(

BufferedReader in = new BufferedReader (new FileReader(datei));

                try

                {

                    int iPosMerker;

                    int iFirst;


                    while ((sLine = in.readLine())!= null)

                    {

                        //Dateiinhalt ausgeben

                        sFileInhalt = sLine;

                        System.out.println(sFileInhalt);


                        //nach public suchen

                        int iPublic = sFileInhalt.indexOf("public");

                        if (iPublic != -1)

                        {

                            //1. public merken und anzeigen

                            System.out.println(iPublic);

                            iPosMerker = iPublic;  


                            //nach <p> suchen

                            while ((sLine = in.readLine())!= null)

                            {

                                sFileInhalt = sLine;

                                System.out.println(sFileInhalt);

                                iFirst = sFileInhalt.indexOf("<p>");

                                if(iFirst != -1)

                                {

                                    //Ausgabe Merker <p>

                                    System.out.println(iFirst);

                                }


                                else

                                {

                                    //auf 0 setzten

                                    iFirst = 0xffff;

                                    //suche nach </p>

                                    iPosMerker = sFileInhalt.indexOf("</p>");

                                    if (iPosMerker >= 0)

                                    {

                                        iFirst = iPosMerker;

                                        //Ausgabe Merker </p>

                                        System.out.println(iFirst);

                                    }

                                }                        

                            } 

                        }

                   }    

Link zu diesem Kommentar
Auf anderen Seiten teilen

Kein Wunder, wenn man nichts dafür tut, daß wer Text gesichert/ausgegeben wird. Aber gut: Du bist Dir im Klaren darüber, daß Du einen Text über mehrere Zeilen liest und daher immer wieder 'ne neue sLine hast? Du mußt also den Text von "<p>" bis zum Ende der Zeile sichern, dann alle weitere Zeilen dranhängen bis Du eine Zeile findest, in der "</p>" steht. Empfehlen würde ich da einen StringBuffer. Über append() kannst Du an den immer wieder einen String anhängen, so daß Du später den kompletten Text innerhalb der p-Tags in diesem StringBuffer hast. Das reicht vorerst mal als Tip, schließlich macht Übung den Meister.

Noch was: Warum setzt Du iFirst nicht einfach auf 0 statt auf 0xffff?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Kein Wunder, wenn man nichts dafür tut, daß wer Text gesichert/ausgegeben wird. Aber gut: Du bist Dir im Klaren darüber, daß Du einen Text über mehrere Zeilen liest und daher immer wieder 'ne neue sLine hast? Du mußt also den Text von "<p>" bis zum Ende der Zeile sichern, dann alle weitere Zeilen dranhängen bis Du eine Zeile findest, in der "</p>" steht. Empfehlen würde ich da einen StringBuffer. Über append() kannst Du an den immer wieder einen String anhängen, so daß Du später den kompletten Text innerhalb der p-Tags in diesem StringBuffer hast. Das reicht vorerst mal als Tip, schließlich macht Übung den Meister.

Hallo,

ja, darüber bin ich mir schon im klaren das ich immer wieder ne neue sLine hab.

z. B. sieht eine Artikelbeschreibung folgendermaßen aus:


/**

 * <p>

 * Hier steht die Artikelbeschreibung

 * und hier noch mehr

 * </p>

 */

ich bin jetzt deinem Rat gefolgt mit dem StringBuffer

StringBuffer sbText = new StringBuffer();                         

          sbText.append(sLine);

          System.out.println(sbText);

jetzt fehlt mir nur noch das abspeichern der sLine und das zufügen der nächsten sLine. Da hab ich noch Probleme mit :( mich irritieren die (*) noch!

Noch was: Warum setzt Du iFirst nicht einfach auf 0 statt auf 0xffff?

Hab ich übrigens geändert. Keine Ahnung warum ich da nicht gleich 0 genommen habe. Keine Absicht von mir mit dem 0xffff

Gruß

Link zu diesem Kommentar
Auf anderen Seiten teilen

ich bin jetzt deinem Rat gefolgt mit dem StringBuffer


StringBuffer sbText = new StringBuffer();                         

          sbText.append(sLine);

          System.out.println(sbText);

jetzt fehlt mir nur noch das abspeichern der sLine und das zufügen der nächsten sLine. Da hab ich noch Probleme mit :( mich irritieren die (*) noch!

Das sieht ja schon mal gut aus. Jetzt mußt Du nur noch jede sLine, die zwischen den p-Tags hängt per sbText.append(sLine) and den StringBuffer anhängen. Der StringBuffer darf dabei natürlich nur einmal und nicht jedesmal initialisiert werden ;)

Du mußt also herausfinden, ob die aktuelle gelesene sLine zwischen p-Tags liegt oder nicht und je nachdem dem StringBuffer hinzufügen. Probier' mal rum, falls Du hängst, melde Dich wieder.

Hab ich übrigens geändert. Keine Ahnung warum ich da nicht gleich 0 genommen habe. Keine Absicht von mir mit dem 0xffff

Hab' auch mehr aus Neugierde gefragt, als Dich belehren zu wollen :D

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das sieht ja schon mal gut aus. Jetzt mußt Du nur noch jede sLine, die zwischen den p-Tags hängt per sbText.append(sLine) and den StringBuffer anhängen. Der StringBuffer darf dabei natürlich nur einmal und nicht jedesmal initialisiert werden ;)

Du mußt also herausfinden, ob die aktuelle gelesene sLine zwischen p-Tags liegt oder nicht und je nachdem dem StringBuffer hinzufügen. Probier' mal rum, falls Du hängst, melde Dich wieder.

Danke noch für den Tipp :D

Läuft alles wie es sein sollte. Hab ne while-Schleife benutzt und er ließt alles einwandfrei ein. Danke

Gruß

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...