Seite 3 von 3

Re: Codeschnipsel Archiv

Verfasst: 08.08.2010 19:17
von Christian+
So der folgende Code zeigt das Problem (ich denke auch Bug) gut denn wenn ich aus der Datei lade ist alles korrekt beim direkten übergeben wird aber ein Zeichen angehängt (Ist bei mir aber keine Null sondern ein normales Leerzeichen glaube ich schau ich mal noch mit einem anderen Editor nach).
Problem ist auf Windows 7 64Bit mit IE 8 und Pure Basic sowohl in der 32 Bit als auch in der 64 Bit Version reproduzierbar und ob Unicode Exe oder nicht ändert auch nichts.
Ich wollte deswegen mir mal den HTML Code beider Gadgets und die Zeichen Anzahl ausgeben lassen und habe in der Hilfe nachgeschlagen wie das geht aber entweder ich blick da gerade nur nicht durch und mach einen blöden Fehler oder da kommt schon das nächste Problem denn das geht irgendwie nicht.

Code: Alles auswählen

EnableExplicit

OpenWindow(0, 0, 0, 600, 300, "WebGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)

Define file.i, html$

html$ + "<!DOCTYPE HTML PUBLIC " + Chr(34) + "-//W3C//DTD HTML 4.01 Transitional//EN" + Chr(34) + ">" + #CRLF$
html$ + "<html>" + #CRLF$
html$ + "<head>" + #CRLF$
html$ + "<title>" + "Test" + "</title>" + #CRLF$
html$ + "</head>" + #CRLF$
html$ + "<body style ='background-color:#FFFFB4;'>" + #CRLF$
html$ + "<p>Test</p>" + #CRLF$
html$ + "</body>" + #CRLF$
html$ + "</html>"

WebGadget(0, 10, 10, 280, 280, "")
WebGadget(1, 310, 10, 280, 280, "")

SetGadgetItemText( 0, #PB_Web_HtmlCode, html$ )

file = CreateFile( #PB_Any, "test.html" )
  WriteString( file, html$, #PB_UTF8 )
CloseFile( file )
SetGadgetText( 1, "file://"+ GetCurrentDirectory() +"test.html" )

Debug GetGadgetItemText( 0, #PB_Web_HtmlCode )
Debug GetGadgetItemText( 1, #PB_Web_HtmlCode )
Debug Len( GetGadgetItemText( 0, #PB_Web_HtmlCode ) )
Debug Len( GetGadgetItemText( 1, #PB_Web_HtmlCode ) )

Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow

Re: Codeschnipsel Archiv

Verfasst: 08.08.2010 19:49
von Vera
sieh mal hier, im Code von bobobo werden Zeilen und Charaktere ausgezählt und läßt sich schnell anpassen: Editor-Gadget und maximale Zeilenanzahl

Re: Codeschnipsel Archiv

Verfasst: 08.08.2010 19:56
von Christian+
Der hat aber auch das gleiche Prinzip wie ich

Code: Alles auswählen

Len( GetGadgetItemText( 0, #PB_Web_HtmlCode ) )
und zumindest auf meinen PC kommt da nur Müll raus hast du meinen Quellecode mal getestet ?

Re: Codeschnipsel Archiv

Verfasst: 08.08.2010 20:03
von Vera
Christian+ hat geschrieben: hast du meinen Quellecode mal getestet ?
Nein, aber das will ich jetzt machen - (OS wechseln) - und dann melde ich mich nachher wieder.

WEITER:

Hallo,
eine kleine Rückmeldung.
Die Ergebnisse, die Du bekommst sind schon ok, denn es wird ja nur die erste Zeile gelesen und das ist, soweit ich verstehe, die UFT-8 Signatur.
Ich konnte bobobos Code soweit einbinden, als dass die Anzahl aller Zeichen auch ermittelt wird. (allerdings hat es nicht geklappt die Events von 2. Gadget zu erhalten - hab nach 1 Stunde erstmal aufgegeben)

ABER - das NULL-Bit wird nicht mitgezählt, sondern vermutlich als Datei-Ende definiert, von daher nützt diese Methode nicht viel.

Code: Alles auswählen

EnableExplicit

OpenWindow(0, 0, 0, 600, 300, "WebGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)

Define file.i, html$, GadgetID.i, lines.q, chars.q, event.i, EventType.i

html$ + "<!DOCTYPE HTML PUBLIC " + Chr(34) + "-//W3C//DTD HTML 4.01 Transitional//EN" + Chr(34) + ">" + #CRLF$
html$ + "<html>" + #CRLF$
html$ + "<head>" + #CRLF$
html$ + "<title>" + "Test" + "</title>" + #CRLF$
html$ + "</head>" + #CRLF$
html$ + "<body style ='background-color:#FFFFB4;'>" + #CRLF$
html$ + "<p>Test</p>" + #CRLF$
html$ + "</body>" + #CRLF$
html$ + "</html>"

WebGadget(0, 10, 10, 280, 280, "")
WebGadget(1, 310, 10, 280, 280, "")

SetGadgetItemText( 0, #PB_Web_HtmlCode, html$ )

file = CreateFile( #PB_Any, "test.html" )
  WriteString( file, html$, #PB_UTF8 )
CloseFile( file )
SetGadgetText( 1, "file://"+ GetCurrentDirectory() +"test.html" )

; chars.q=Len(GetGadgetItemText( 0, #PB_Web_HtmlCode)) ; lies nur 1 mal = 1. Zeile
; Debug chars 

Repeat 
   Event = WaitWindowEvent() 
   
   If Event = #PB_Event_Gadget
    If GadgetID = 0
      chars.q=Len(GetGadgetItemText( 0, #PB_Web_HtmlCode)) ; via Loop werden alle Zeilen gelesen
      If chars >= 0
        Debug chars
      Else
        Debug "nothing"
      EndIf
    EndIf
  EndIf
  
Until Event = #PB_Event_CloseWindow

; Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
Auf die Schnelle, kann ich Dir aber sagen, das Notepad2 in der Statusbar die echte Anzahl anzeigt und dort für die Seite des 1. Webgadgets 184 Bytes meldet und wie zu erwarten, 183 für's zweite.
Es gibt auch eine x64 Version von Notepad2 (falls Interesse)

Gruß ~ Vera

Re: Codeschnipsel Archiv

Verfasst: 08.08.2010 22:27
von Christian+
Ich bin echt blind gewesen danke für deinen Code der hat mir auf die Sprünge geholfen es liegt nicht an der Zeile das auslesen ging nicht da sich das Gadget ja erst aufbauen muss und ich im ersten Versuch schon vor der Event Schleife auslesen wollte wo das WebGadget noch keinen Inhalt hat manchmal kommt man einfach auf die einfachsten dinge nicht. Allerdings hast du recht der Code zählt das zusätlich bei SetGadgetItemText( 0, #PB_Web_HtmlCode, html$ ) enstandene letzte Zeichen nicht.

Code: Alles auswählen

EnableExplicit

OpenWindow(0, 0, 0, 600, 300, "WebGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)

Define file.i, html$, event.i, time.l

WebGadget(0, 10, 10, 280, 280, "")
WebGadget(1, 310, 10, 280, 280, "")

html$ + "<!DOCTYPE HTML PUBLIC " + Chr(34) + "-//W3C//DTD HTML 4.01 Transitional//EN" + Chr(34) + ">" + #CRLF$
html$ + "<html>" + #CRLF$
html$ + "<head>" + #CRLF$
html$ + "<title>" + "Test" + "</title>" + #CRLF$
html$ + "</head>" + #CRLF$
html$ + "<body style ='background-color:#FFFFB4;'>" + #CRLF$
html$ + "<p>Test</p>" + #CRLF$
html$ + "</body>" + #CRLF$
html$ + "</html>"

SetGadgetItemText( 0, #PB_Web_HtmlCode, html$ )

file = CreateFile( #PB_Any, "test.html" )
  WriteString( file, html$, #PB_UTF8 )
CloseFile( file )
SetGadgetText( 1, "file://"+ GetCurrentDirectory() +"test.html" )

time = ElapsedMilliseconds() + 1000

Repeat
  
  event = WaitWindowEvent()
  
  If time > 0 And ElapsedMilliseconds() > time
    Debug GetGadgetItemText( 0, #PB_Web_HtmlCode)
    Debug GetGadgetItemText( 1, #PB_Web_HtmlCode)
    Debug Len( GetGadgetItemText( 0, #PB_Web_HtmlCode) )
    Debug Len( GetGadgetItemText( 1, #PB_Web_HtmlCode) )
    time = 0
  EndIf

Until event = #PB_Event_CloseWindow