Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
grindstone
Anmeldungsdatum: 03.10.2010 Beiträge: 1211 Wohnort: Ruhrpott
|
Verfasst am: 10.02.2015, 13:20 Titel: Bug in fbc 1.01.1 ? |
|
|
Hallo,
möglicherweise bin ich auf einen Bug in fbc 1.01.0 gestoßen. Das Programm hängt bei ThreadCreate, wenn vorher g = Input(n,#ff) aufgerufen wurde. Wenn die markierte Zeile auskommentiert wird, funktioniert der Thread.
Mit den Vorgängerversionen von fbc gab es dieses Problem nicht. Code: | Declare Sub animhinweis (parameter As Any Ptr)
Dim Shared As Any Ptr handle
Dim Shared As Integer ende
Dim As String g
Open "text.txt" For Output As #1
Print #1, "abcdefghijklmnopqrstuvwxyz"
Close 1
Open "text.txt" For Binary Access Read As #1
g = Input(4, #1) '<<<<<<<< Diese Zeile auskommentieren, dann funktioniert der Thread
Close 1
handle = ThreadCreate(@animhinweis) 'animierten hinweis starten
Sleep
ende = 1
ThreadWait(handle) 'hinweis beenden
Sleep 1000,1
Sub animhinweis (parameter As Any Ptr)
'animierter hinweis
Dim As Integer x, altefarbe, altezeile, altespalte
Dim As String text = "ANIMIERTER HINWEIS"
altefarbe = Color()
altezeile = CsrLin
altespalte = Pos()
? "animhinweis"
Do
For x = 1 To Len(text)
Locate 16, 25, 0
Color 10, 0 'normale farbe
Print Left(text, x-1);
Color 2, 0 'highlightfarbe
Print Mid(text, x, 3);
Color 10, 0 'normale farbe
Print Mid(text, x+3)
Color LoWord(altefarbe), HiWord(altefarbe) 'ursprüngliche farbe
Locate altezeile, altespalte, 0 'cursor an alte position
Sleep 50,1
If ende Then
Exit Do
EndIf
Next
Sleep 1
Loop
Color LoWord(altefarbe),HiWord(altefarbe)
Locate 16,25,0
Print String(Len(text), " ") 'hinweis entfernen
handle = 0 'threadhandle löschen
End Sub |
Gruß
grindstone _________________ For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen! |
|
Nach oben |
|
|
dreael Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 2507 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 10.02.2015, 23:30 Titel: |
|
|
Feststellung von mir, als ich am Windows 10-Tests machen war: Das Threadmandelbrot-Beispiel verursacht mit dem neuen FB-Compiler nun ebenfalls am Programmende einen "TheadMandelbrot.exe funktioniert nicht mehr" mit dem berühmten "Online nach einer Lösung suchen und das Programm schliessen", was bei FB 0.90.1 noch nicht der Fall ist -> scheint also tatsächlich eine Verschlimmbesserung passiert zu sein.
/edit: Dies passiert sowohl mit FBC 1.00.0 als auch mit dem neu erschienen FBC 1.01.0 -> im internationalen Forum bereits als Bug gemeldet. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
|
grindstone
Anmeldungsdatum: 03.10.2010 Beiträge: 1211 Wohnort: Ruhrpott
|
Verfasst am: 11.02.2015, 02:57 Titel: |
|
|
dreael hat Folgendes geschrieben: | im internationalen Forum bereits als Bug gemeldet. | Na ja, dann besteht ja noch Hoffnung.
Es muß übrigens eine Methode geben, diesen Fehler zu "heilen", denn ein anderer Thread später in dem Programm, aus dem das gepostete Beispiel stammt, funktioniert einwandfrei. Vielleicht kann man ja einen Workaround basteln.
Gruß
grindstone
EDIT: Keine "Heilung". Der eine Thread läuft, der andere nicht. Keine Ahnung, warum. _________________ For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen! |
|
Nach oben |
|
|
nemored
Anmeldungsdatum: 22.02.2007 Beiträge: 4597 Wohnort: ~/
|
Verfasst am: 11.02.2015, 21:31 Titel: |
|
|
Funktioniert es, wenn du statt der Funktion INPUT() die Anweisung verwendest?
Code: | g = space(4)
input #1, g |
Unter Linux stürzt so zumindest nichts ab, soweit ich das sehe. INPUT() macht, soweit ich mich erinnere, auch an anderer Stelle eher mal Probleme. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
|
dkl FreeBASIC-Compiler-Entwickler
Anmeldungsdatum: 25.04.2010 Beiträge: 14 Wohnort: Germany
|
|
Nach oben |
|
|
grindstone
Anmeldungsdatum: 03.10.2010 Beiträge: 1211 Wohnort: Ruhrpott
|
Verfasst am: 12.02.2015, 10:58 Titel: |
|
|
@nemored:
Hat sich ja wohl inzwischen eledigt, aber ja, mit input #1, g funktioniert der Thread. Es ist übrigens unnötig, die Variable vorher auf space(4) zu setzen, da sowieso bis zum nächsten Trennzeichen gelesen wird.
dkl hat Folgendes geschrieben: | Das ganze sollte hiermit repariert sein | Dann warten wir mal das nächste Release ab.
Gruß
grindstone _________________ For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen! |
|
Nach oben |
|
|
nemored
Anmeldungsdatum: 22.02.2007 Beiträge: 4597 Wohnort: ~/
|
Verfasst am: 12.02.2015, 16:51 Titel: |
|
|
Zitat: | Es ist übrigens unnötig, die Variable vorher auf space(4) zu setzen, da sowieso bis zum nächsten Trennzeichen gelesen wird. |
Ich hatte bei meiner Idee von SPACE(4) einen gedanklichen Knoten zwischen INPUT# und GET#. Mit GET# kann man genau so viele Zeichen auslesen, wie man braucht, wenn der String zuvor die richtige Länge hat. Mit INPUT# klappt das so natürlich nicht. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
|
grindstone
Anmeldungsdatum: 03.10.2010 Beiträge: 1211 Wohnort: Ruhrpott
|
Verfasst am: 13.02.2015, 02:28 Titel: |
|
|
Mit GET# hängt der Thread ebenfalls, das ist also keine Alternative.
Gruß
grindstone _________________ For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen! |
|
Nach oben |
|
|
St_W
Anmeldungsdatum: 22.07.2007 Beiträge: 949 Wohnort: Austria
|
Verfasst am: 13.02.2015, 12:23 Titel: |
|
|
grindstone hat Folgendes geschrieben: | dkl hat Folgendes geschrieben: | Das ganze sollte hiermit repariert sein | Dann warten wir mal das nächste Release ab. |
Ansonsten gibts auch nightly builds hier:
http://users.freebasic-portal.de/stw/builds/
Beim jeweils aktuellsten ist der Fix schon drin (ansonsten kannst du dich im Changelog vergewissern) _________________ Aktuelle FreeBasic Builds, Projekte, Code-Snippets unter http://users.freebasic-portal.de/stw/
http://www.mv-lacken.at Musikverein Lacken (MV Lacken) |
|
Nach oben |
|
|
dreael Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 2507 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 13.02.2015, 22:13 Titel: |
|
|
Danke für den Hinweis. Damit könnte ich nun die Windows 10-Tests ebenfalls wiederholen mit passendem Feedback im internationalen Forum, damit Bugs entsprechend als erledigt abgehakt werden können, falls möglich. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
|
|