| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen   | 
	
	
	
		| Autor | 
		Nachricht | 
	
	
		grindstone
 
 
  Anmeldungsdatum: 03.10.2010 Beiträge: 1283 Wohnort: Ruhrpott
  | 
		
			
				 Verfasst am: 10.02.2015, 12: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: 2531 Wohnort: Hofen SH (Schweiz)
  | 
		
			
				 Verfasst am: 10.02.2015, 22: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: 1283 Wohnort: Ruhrpott
  | 
		
			
				 Verfasst am: 11.02.2015, 01: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: 4712 Wohnort: ~/
  | 
		
			
				 Verfasst am: 11.02.2015, 20: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: 1283 Wohnort: Ruhrpott
  | 
		
			
				 Verfasst am: 12.02.2015, 09: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: 4712 Wohnort: ~/
  | 
		
			
				 Verfasst am: 12.02.2015, 15: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: 1283 Wohnort: Ruhrpott
  | 
		
			
				 Verfasst am: 13.02.2015, 01: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: 958 Wohnort: Austria
  | 
		
			
				 Verfasst am: 13.02.2015, 11: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: 2531 Wohnort: Hofen SH (Schweiz)
  | 
		
			
				 Verfasst am: 13.02.2015, 21: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 | 
		 | 
	
	
		  | 
	
	
		 |