Fenster maximiert zeigen, LinkedList speichern

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Vielleicht wurden die einzelnen Werte durch Tab getrennt, einfach wieder mit

Code: Alles auswählen

t.s = RemoveString(t.s, #TAB$)
entfernen.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Crawler
Beiträge: 110
Registriert: 08.02.2009 19:52
Computerausstattung: PB 4.41
Win7 64bit

Beitrag von Crawler »

Habe ich gerade versucht, auch chr(13) ergab keinen Erfolg. Es ist nur merkwürdig, warum der Code in der Hauptschleife funktioniert, läge es wirklich an zusätzlichen Zeichen, hätte ich ja dort das gleiche Phänomen.
Benutzeravatar
HeX0R
Beiträge: 3042
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Beitrag von HeX0R »

Wenn du dasselbe wie in deinem Ursprungscode erreichen willst, musst du die Strings natürlich auch zusammenbasteln:

Code: Alles auswählen

If IsSerialPort (1)
  nmea.s + GetTextSerial ()
EndIf
Crawler
Beiträge: 110
Registriert: 08.02.2009 19:52
Computerausstattung: PB 4.41
Win7 64bit

Beitrag von Crawler »

So wie ich das sehe funktioniert das jetzt. DANKE! Da hätte ich aber auch drauf kommen müssen, aber manchmal sieht man den Wald vor lauter Bäumen nicht. Das Kürzen des Datensatzes auf ca. 1000 Zeichen mache ich dann doch wieder in der Hauptschleife, sonst wird mir nmea.s zu lang.
Benutzeravatar
HeX0R
Beiträge: 3042
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Beitrag von HeX0R »

Das liesse sich auch so lösen:

Code: Alles auswählen

Procedure.s getTextSerial(result.s)
  Protected input.i, *mem, length.i
 
  input = AvailableSerialPortInput(1)
  If input > 0
    *mem = AllocateMemory(input)
    If *mem
      length = ReadSerialPortData (1, *mem, input)
      If length
        result + PeekS(*mem, length, #PB_Ascii)
        If Len(result) > 1024
          result = Right(result, 1000)
        EndIf
      EndIf
      FreeMemory(*mem)
    EndIf
  EndIf
 
  ProcedureReturn result
EndProcedure 

Define.i event
Define.s nmea

Repeat
	event=WaitWindowEvent (20)
	Select event
		Case #PB_Event_CloseWindow
			If IsSerialPort(1)
				CloseSerialPort (1)
			EndIf
			ende=1
		Case #PB_Event_Gadget
			Select EventGadget ()
				Case 20
					;MessageRequester ("Info", "Koordinate erfassen")
					;.
					;.
					;.
				Case 21
					ende=1
			EndSelect
	EndSelect

	If IsSerialPort (1)
		nmea = GetTextSerial (nmea)
	EndIf

	;.
	;.
	;.

Until ende=1

Crawler
Beiträge: 110
Registriert: 08.02.2009 19:52
Computerausstattung: PB 4.41
Win7 64bit

Beitrag von Crawler »

Das ist auch hübsch, das Programm funktioniert bestens und hat sich bisher noch nicht verschluckt.
Antworten