Haben Editorgadgets irgendwelche Limits?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Delle
Beiträge: 1130
Registriert: 10.05.2005 22:48

Haben Editorgadgets irgendwelche Limits?

Beitrag von Delle »

Hallo,

ich lese eine ziemlich große Textdatei (15.000 Zeilen, je Zeile ein Wort) in PB rein.

Zuerst alles in eine Liste, danach werden die Wörter zeilenweise in einem EditorGadget ausgegeben.

Mit 15.000 Zeilen funktioniert das anscheinend problemlos, mit 20.000 aber kam es öfter man zu Abstürzen (Programm reagiert nicht mehr).

Gibt es also für das EG irgendein Limit was a) die Zeilenanzahl oder/und b) die Textlänge insgesamt angeht?

Danke,
Delle
PB 6.21 | Win 11
Benutzeravatar
Bisonte
Beiträge: 2468
Registriert: 01.04.2007 20:18

Re: Haben Editorgadgets irgendwelche Limits?

Beitrag von Bisonte »

Darüber kann man wohl nur Fred ausfragen.

Allerdings wäre es in deinem Falle nicht sinnvoller, nur den Teil (+- 20 oder 30 Zeilen) darzustellen, der auch im Gadget sichtbar
wäre ? Dann würde sich das Problem nicht ergeben, und würde dann vermutlich auch nicht träge werden....

So als Hinweis SelectElement() etc....
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
GPI
Beiträge: 1511
Registriert: 29.08.2004 13:18
Kontaktdaten:

Re: Haben Editorgadgets irgendwelche Limits?

Beitrag von GPI »

Das EditorGadget dürfte ein Rich Edit Control sein.

Google spuckte mir da unter anderen das aus: http://blogs.msdn.com/b/oldnewthing/arc ... 50795.aspx
If you don't specify otherwise, the maximum number of characters in a rich edit control is 32,767 charaters. (This limit exists for compatibility with the original rich edit control.) You can raise the limit with the EM_EXLIMITTEXT message. Therefore, we need to slip the line

SendMessage(hwnd, EM_EXLIMITTEXT, 0, -1);
Also gut möglich dass sich da was aufhängt.
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Haben Editorgadgets irgendwelche Limits?

Beitrag von RSBasic »

Tritt das Problem bei dir immer auf oder nur ab und zu mal?
Kannst du mit folgendem Code ebenfalls nachstellen?

Code: Alles auswählen

EnableExplicit

Define a
Define Test$

For a=1 To 20000
  Test$ + "Text " + Str(a) + Chr(13)
Next

If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  EditorGadget(1, 0, 0, WindowWidth(0), WindowHeight(0))
  SetGadgetText(1, Test$)
  SetActiveGadget(1)
  
  AddWindowTimer(0, 1, 10)
  
  Repeat
    Select WaitWindowEvent()
      Case #PB_Event_Timer
        Select EventTimer()
          Case 1
            AddGadgetItem(1, -1, "Text " + Str(CountGadgetItems(1)))
        EndSelect
      Case #PB_Event_CloseWindow
        End
    EndSelect
  ForEver
EndIf
Ich ließ den Code im Hintergrund laufen und auch nach 40.000 konnte ich keine Probleme feststellen. Das Fenster reagierte stets.
Liegt es wirklich am EditorGadget oder liegt die Ursache vielleicht woanders? Konntest du mit einem kleinen Beispielcode nachstellen?
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
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

Re: Haben Editorgadgets irgendwelche Limits?

Beitrag von ts-soft »

Nach meinen Infos wurde das Limit bei EditorGadget (RichEdit) aufgehoben, wenn das nicht zwischendurch,
versehentlich?, geändert wurde. Also daran sollte es nicht liegen.
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
Antworten