Jetzt kostenlos registrieren. Mitglieder surfen ohne Werbung auf Android-Hilfe.de!
Zurück   Android-Hilfe.de > Android Developer > Android App Entwicklung

Quellcode auslesen funktioniert, aber nicht in Schleife ?!

Das Thema "Quellcode auslesen funktioniert, aber nicht in Schleife ?!" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.


Antwort

 

Themen-Optionen Ansicht
Alt 22.08.2011, 12:28   #1 (permalink)
Junior Mitglied

Registriert seit: 07.02.2011
Beiträge: 31
Abgegebene Danke: 6
Erhielt 0 Danke für 0 Beiträge
Standard Quellcode auslesen funktioniert, aber nicht in Schleife ?!

Hallo, Ich möchte bei meiner App den Quellcode einer Seite auslesen.
Es funktioniert, aber auch irgendwie nicht.
Code:
Code:
try {            
        	URL url_ = new URL("http://www.lolsignup.co.de/");
    		URLConnection conn = url_.openConnection();
    		DataInputStream in = new DataInputStream ( conn.getInputStream (  )  ) ;
    		BufferedReader d = new BufferedReader(new InputStreamReader(in, "iso-8859-15"));
    		String content = "";
    		while(d.ready())
    		{
    			content += d.readLine();
    		}
Einmalig auslesen klappt wunder bar. Aber auch da kommt mir vor Führt das Programm das auslesen vor allem anderen durch. z.B. Ich habe ein Label mit dem Standardtext "Dies ist ein Test". Starte ich nun mein Programm, ist das Label leer, solange bis der Quellcode fertig ausgelesen wurde. Dann kommt erst "Dies ist ein Test" als Text auf das Label.

Mit Schleife (was für mein Programm notwendig ist) funktioniert es nicht. Wenn ich zum Beispiel eine For-Schleife mit 3 Durchgängen mache ließt er 3 mal hintereinander ohne was anderes zu machen den Quellcode aus (was er ja nicht tun soll weil ich ja nach jeden Durchgang etwas aus dem Quellcode herausfiltern will)..

Wieso geht das nicht , bzw Wie kann man das ändern?

lg Lucaa!
lucaaAUT ist offline   Mit Zitat antworten
Alt 22.08.2011, 12:39   #2 (permalink)
Android Experte

Modell: HTC Hero

Registriert seit: 14.10.2009
Beiträge: 612
Abgegebene Danke: 18
Erhielt 42 Danke für 40 Beiträge
Standard AW: Quellcode auslesen funktioniert, aber nicht in Schleife ?!

Niemand hat dir versprochen das es arbeiten würde:
Code:
True if the next read() is guaranteed not to block for input,  false otherwise.  Note that returning false does not guarantee that the  next read will block.
Und bitte, tue so etwas nicht
Code:
content += d.readLine();
Dafür werden die Entwickler gelyncht.
__________________
_____________________________________________
Meine apps: http://www.pribluda.de/android
Suche Schriftmuster von Prepaid-Auflade-Bons
ko5tik ist offline   Mit Zitat antworten
Alt 22.08.2011, 12:42   #3 (permalink)
Junior Mitglied

Registriert seit: 07.02.2011
Beiträge: 31
Abgegebene Danke: 6
Erhielt 0 Danke für 0 Beiträge
Standard AW: Quellcode auslesen funktioniert, aber nicht in Schleife ?!

okay...

Danke erstmal, Aber gibt es eine andere Möglichkeit?
Wieso werden Sie gelyncht ? :P

lg
lucaaAUT ist offline   Mit Zitat antworten
Alt 22.08.2011, 13:26   #4 (permalink)
Android Experte

Modell: HTC Hero

Registriert seit: 14.10.2009
Beiträge: 612
Abgegebene Danke: 18
Erhielt 42 Danke für 40 Beiträge
Standard AW: Quellcode auslesen funktioniert, aber nicht in Schleife ?!

Warum nimmst du nicht dem HttpClient (welches standartmäßig da ist, und alles richtig tut)?

Zum 2. Frage: da String immutabel ist, artet string += string in eine Speicherzuweisungsorgie
mit herumkopieren - was für die Performance eher hinderlich ist.
__________________
_____________________________________________
Meine apps: http://www.pribluda.de/android
Suche Schriftmuster von Prepaid-Auflade-Bons
ko5tik ist offline   Mit Zitat antworten
Folgender Benutzer bedankt sich bei ko5tik für diesen Beitrag:
lucaaAUT (22.08.2011)
Alt 22.08.2011, 13:31   #5 (permalink)
Junior Mitglied

Registriert seit: 07.02.2011
Beiträge: 31
Abgegebene Danke: 6
Erhielt 0 Danke für 0 Beiträge
Standard AW: Quellcode auslesen funktioniert, aber nicht in Schleife ?!

Super Danke
Super erklärt

lg lucaaAUT
lucaaAUT ist offline   Mit Zitat antworten
Alt 23.08.2011, 03:09   #6 (permalink)
Android Guru
 
Benutzerbild von Fr4gg0r

Modell: Samsung Galaxy S (I9000)

Registriert seit: 21.12.2009
Beiträge: 2.572
Abgegebene Danke: 76
Erhielt 506 Danke für 295 Beiträge
Standard AW: Quellcode auslesen funktioniert, aber nicht in Schleife ?!

Soweit ich weiß, baut der Compiler das so um:
String content;
while(d.ready()){
StringBuilder sb = new StringBuilder();
sb.append(content).append(d.readLine());
content = sb.toString();
}

Dann ist auch ersichtlich warum das Mist ist.
Fr4gg0r ist offline   Mit Zitat antworten
Alt 23.08.2011, 06:11   #7 (permalink)
Android Experte
 
Benutzerbild von v Ralle v

Modell: Samsung Galaxy S2 mit CM9 | Asus Transformer Prime

Registriert seit: 27.08.2010
Beiträge: 782
Abgegebene Danke: 124
Erhielt 162 Danke für 128 Beiträge
Standard AW: Quellcode auslesen funktioniert, aber nicht in Schleife ?!

Bleibt die Frage, ob er es wirklich so umbaut?! ^^ Kann man sich da sicher sein?
__________________
Auch ich freue mich, wenn man bei mir den DANKE Button drückt
PowerPoint OpenOffice Remote - Kostenlose App um PowerPoint, OpenOffice und LibreOffice fernzusteuern.
Shutdown Remote - Kostenlose App um seinen PC aus der Ferne herunterzufahren.
v Ralle v ist offline   Mit Zitat antworten
Alt 23.08.2011, 07:00   #8 (permalink)
Android Guru
 
Benutzerbild von Fr4gg0r

Modell: Samsung Galaxy S (I9000)

Registriert seit: 21.12.2009
Beiträge: 2.572
Abgegebene Danke: 76
Erhielt 506 Danke für 295 Beiträge
Standard AW: Quellcode auslesen funktioniert, aber nicht in Schleife ?!

Code:
.method public foobar(Ljava/io/BufferedReader;)V
    .locals 3
    .parameter "d"
    const-string v0, ""

    .line 95
    .local v0, content:Ljava/lang/String;
    :goto_2
    invoke-virtual {p1}, Ljava/io/BufferedReader;->ready()Z

    move-result v1

    if-nez v1, :cond_9

    .line 98
    return-void

    .line 96
    :cond_9
    new-instance v1, Ljava/lang/StringBuilder;

    invoke-static {v0}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;

    move-result-object v2

    invoke-direct {v1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V

    invoke-virtual {p1}, Ljava/io/BufferedReader;->readLine()Ljava/lang/String;

    move-result-object v2

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v1

    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    goto :goto_2
.end method
meine java rekonstruktion:
while(d.ready()){
StringBuilder sb = new StringBuilder(String.valueOf(content));
sb.append(d.readLine());
content = sb.toString();
}
durch den valueOf() Aufruf ist der Code also noch langsamer als oben geschrieben.
Fr4gg0r ist offline   Mit Zitat antworten
Folgender Benutzer bedankt sich bei Fr4gg0r für diesen Beitrag:
v Ralle v (24.08.2011)
Alt 24.08.2011, 20:06   #9 (permalink)
Android Experte
 
Benutzerbild von v Ralle v

Modell: Samsung Galaxy S2 mit CM9 | Asus Transformer Prime

Registriert seit: 27.08.2010
Beiträge: 782
Abgegebene Danke: 124
Erhielt 162 Danke für 128 Beiträge
Standard AW: Quellcode auslesen funktioniert, aber nicht in Schleife ?!

Danke Sehr interessant.
__________________
Auch ich freue mich, wenn man bei mir den DANKE Button drückt
PowerPoint OpenOffice Remote - Kostenlose App um PowerPoint, OpenOffice und LibreOffice fernzusteuern.
Shutdown Remote - Kostenlose App um seinen PC aus der Ferne herunterzufahren.
v Ralle v ist offline   Mit Zitat antworten
Alt 27.08.2011, 15:29   #10 (permalink)
Junior Mitglied

Registriert seit: 07.02.2011
Beiträge: 31
Abgegebene Danke: 6
Erhielt 0 Danke für 0 Beiträge
Standard AW: Quellcode auslesen funktioniert, aber nicht in Schleife ?!

Hallo, Ich habe jetzt erst leider wieder Internet.
Ich bin Leider noch ein Anfänger und mir sagst das im Moment überhaupt nichts.
Kann mir wer Links oder einen Code geben?

Wäre echt super danke
lucaaAUT ist offline   Mit Zitat antworten
Antwort

Stichworte
-

Themen-Optionen
Ansicht


Ähnliche Themen

Thema Autor Forum Antworten Letzter Beitrag
Handy ausgepackt, funktioniert aber nicht valia16 Samsung Galaxy S2 (I9100) Forum 12 07.07.2011 14:40
Neues HTC - Z - Internet funktioniert, aber Market Download funktioniert nicht smsstoffl HTC Desire Z Forum 1 14.03.2011 14:01
Internet Browser funktioniert nicht, aber aber alles andere schon lorryb Samsung Galaxy S (I9000) Forum 22 24.10.2010 22:18
WLAN an aber funktioniert nicht. K@ff33 Samsung Galaxy S (I9000) Forum 10 29.08.2010 16:04
WLAN verbunden, funktioniert aber nicht pantarhei Motorola Milestone Forum 5 16.12.2009 00:52




Du liest gerade: "Quellcode auslesen funktioniert, aber nicht in Schleife ?!" unter "Android App Entwicklung" auf Android-Hilfe.de.


Powered by vBulletin®
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
© Android-Hilfe.de 2012 - All rights reserved.