Deutsch
Forum

mehrere Stringlisten

 
- Seite 1 -



GDL
Hallöle Roland,

ich stehe auch vor dem Problem, mit mehreren Listen zu arbeiten.
Dabei habe ich das hier gefunden:  [...] 

Nur wie bekomme ich die Listen auf einen Rutsch in eine Gridbox?
Die Inc unterstützt nur die Listboxliste zur Übergabe.
KompilierenMarkierenSeparieren
und bei
KompilierenMarkierenSeparieren
geht ein 2ter Parameter für die Liste ab.

Kannst du die Inc so erweitern, dass diese auch die Gridbox unterstützt, oder gibt es eine andere Möglichkeit den Movetobefehl zu erweitern?

Grüßle
Georg
 
XProfan X3
Windows7 Xprofan 8,9,10 [...]  [...] 
24.05.2015  
 



« Dieser Beitrag wurde als Lösung gekennzeichnet. »

- Seite 1 -



GDL
Hi,

ich habe es jetzt mit "Umschaufeln" gelöst.
Da ja im Moment nicht zu viele Daten auflaufen, spielt die Zeit bei meiner Kassenanwendung keine große Rolle.
Selbige Lösung ist aber für meine Modellbahnsteuerung zu langsam. Da lasse ich es im Moment so wie es ist.
KompilierenMarkierenSeparieren
declare ende%,mm1&,mm2&,mm3&,a$,b$,c$,box&,m%
Set("ListDel",chr$(8))
mm1&=create("grid",3,1)
mm2&=create("grid",3,1)
mm3&=create("grid",3,1)
cls
a$="Feld1;0;100;Feld2;0;100;Nummer;0;70"
box&=create("gridbox",%hwnd,a$,1,10,10,280,400)
m%=1

whilenot m% > 4

    a$="vbn"+chr$(8)+"tzu"+chr$(8)+str$(m%)
    b$="777"+chr$(8)+"aaaa"+chr$(8)+str$(m%)
    c$="ssssss"+chr$(8)+"00000"+chr$(8)+str$(m%)
    addstring(mm1&,a$)
    addstring(mm2&,b$)
    addstring(mm3&,c$)
    inc m%

wend

whilenot ende%

    MoveHandleToList(mm1&)
    MoveListToHandle(box&)
    sleep 1000
    clearlist box&
    clearlist
    MoveHandleToList(mm2&)
    MoveListToHandle(box&)
    sleep 1000
    clearlist box&
    clearlist
    MoveHandleToList(mm3&)
    MoveListToHandle(box&)
    sleep 1000
    clearlist box&
    clearlist
    waitinput 20

wend


Nochmals vielen Dank an H.Brill. Aus seinem Code, kann ich wieder was dazulernen.

Servus
Georg
 
XProfan X3
Windows7 Xprofan 8,9,10 [...]  [...] 
25.05.2015  
 



 
- Seite 1 -



H.Brill
Du kannst auch die Listen, die mit @Create(...) erzeugt
werden, verwenden. Da gibt es ja zwei Stück :
KompilierenMarkierenSeparieren
@Create("Grid", A, T)
@Create("List", T)

Mit den normalen Befehlen für Listen und Gridbox
kann man diese bearbeiten oder mit :
KompilierenMarkierenSeparieren
zum Sortieren etc. in die interne Listboxliste schieben
und wieder zurück. Du bekommst ja von den @Create()
Funktionen immer ein Handle zurück.

Die neuen Move - Funktionen der Subscriptions-Version
X3 bieten da noch mehr Möglichkeiten (z.B. für das Sortieren
nach Spalten einer Gridbox).
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
24.05.2015  
 




GDL
Hallöle H.Brill,

vielen Dank für deine Antwort.
Ich habe im Eingangspost vergessen zu schreiben, dass ich die Listen selben Typs gleichzeitig brauche.
Also 3 Gridlisten gleichzeitig.

Nur habe ich das Problem, dass der Movelist... Befehl nur die interne Gridliste unterstützt.

Es geht also der 2te Parameter ab.

So in etwa wäre super:
KompilierenMarkierenSeparieren
liste1&=Create("Grid", 20, 1)
liste2&=Create("Grid", 20, 1)
liste3&=Create("Grid", 20, 1)

und dann je nachdem, welche Liste ich nun brauche
mit z.B. "MoveListToHandle(liste2&,handle der Gridbox)"
Nur leider hat der Movelisttohandle Befehl diese Option nicht.

Grüßle
Georg
 
XProfan X3
Windows7 Xprofan 8,9,10 [...]  [...] 
24.05.2015  
 




H.Brill
Die interne Gridliste dient ja nur als Zwischenspeicher
für MoveListToHandle. Mit ClaerList kannst du ja zwischendurch
die interne Listboxliste löschen. Die Listen bzw. Gridboxen
kannst du ja als Handle in einem int-Array speichern.

Komt jetzt darauf an, was du vorhast.
Oder willst du von Dateien lesen, wie in Franks Listview.dll ?

Da wäre sowas interessant :
KompilierenMarkierenSeparieren
Declare Memory memo
Def @MoveMemToList(2) @MoveStrToList(Char$(@&(1), 0, @&(2)), Chr$(0))' speicher, größe
Dim memo, 100
String memo, 0 = "Hallo ", "du ", "da !"
Cls
MoveMemToList(memo, SizeOf(memo))
@Listbox$("Strings", 1)
Print @MoveStrToList(Char$(memo, 0, sizeof(memo)), chr$(0))
Waitkey
Dispose memo
End

im Zusammenhang mit ReadText und als Trenner
mit Chr$(13) + Chr$(10) dürfte das auch gehen.
Da hätte man was, wie CsvToListview() und ReadFileQuick().
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
24.05.2015  
 




GDL
Hi,

genau Zwischenspeicher trifft es.
Ich bräuchte ohne String oder Array Umweg 3 Zwischenspeicher die mit einem Rutsch in eine Gridbox je nach Bedarf gelesen werden.
Die 3 Zwischenspeicher nehmen Werte von 3 Geräten an der Rs232 auf.
Da gibt es aber keine vorgegebene Reihenfolge. Die Werte kommen weder in vorgebener Reihenfolge noch steht die Datenmenge konstant fest. Jeder Zwischenspeicher speichert solange bis der Wert 255 kommt.
Dann wird übergeben an Grid und weiterverarbeitet, während der Zwischenspeicher schon wieder aufnimmt.

Bei Versuchen stellte sich die Stringliste in Verbindung mit dem Moveto Befehl als am schnellsten raus.

Grüßle Georg
 
XProfan X3
Windows7 Xprofan 8,9,10 [...]  [...] 
24.05.2015  
 




H.Brill
Die Werte kommen also lose und hintereinander bis
Wert 255 an ? Also müßte man noch separieren, was
die Anzahl Spalten des Grid anbetrifft. Schreibst du
das dann in eine einzige Gridbox oder machst du
je Gerät eine separate ?

Ich frage nur deshalb, um heraus zu finden, welche
Liste da am besten geeignet ist. Bei der Subscription
X3 kann man ja sogar offene Arrays mit Bereichen
erstellen. Ein offenes Array wäre da am besten, weil
die Datenmenge nicht fest steht.

Bei direkt hintereinanderliegenden Daten und keiner
vorgegebenen Reihenfolge wird das aber ganz schön
fummelig.

Am besten ist, wenn du mir so einen Datenstrom mal
zeigen könntest.
Vier Augen sehen meist mehr als zwei.
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
25.05.2015  
 




GDL
Hallöle,

hab dir ne PN geschrieben. Ich kann das telefonisch besser rüberbringen.

Grüßle
Georg
 
Windows7 Xprofan 8,9,10 [...]  [...] 
25.05.2015  
 




H.Brill
Naja, ohne Kenntnisse der sendenden Hardware,
oder auch wenn man diese nicht hat, wird es sowieso
sehr schwierig.
Es sei denn, man hat die Hardware z.B. mit einem AVR
selbst gebaut und programmiert. Da kann man dann
selber Einfluß auf die Ausgaben nehmen.
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
25.05.2015  
 




GDL
Hi,

ich habe es jetzt mit "Umschaufeln" gelöst.
Da ja im Moment nicht zu viele Daten auflaufen, spielt die Zeit bei meiner Kassenanwendung keine große Rolle.
Selbige Lösung ist aber für meine Modellbahnsteuerung zu langsam. Da lasse ich es im Moment so wie es ist.
KompilierenMarkierenSeparieren
declare ende%,mm1&,mm2&,mm3&,a$,b$,c$,box&,m%
Set("ListDel",chr$(8))
mm1&=create("grid",3,1)
mm2&=create("grid",3,1)
mm3&=create("grid",3,1)
cls
a$="Feld1;0;100;Feld2;0;100;Nummer;0;70"
box&=create("gridbox",%hwnd,a$,1,10,10,280,400)
m%=1

whilenot m% > 4

    a$="vbn"+chr$(8)+"tzu"+chr$(8)+str$(m%)
    b$="777"+chr$(8)+"aaaa"+chr$(8)+str$(m%)
    c$="ssssss"+chr$(8)+"00000"+chr$(8)+str$(m%)
    addstring(mm1&,a$)
    addstring(mm2&,b$)
    addstring(mm3&,c$)
    inc m%

wend

whilenot ende%

    MoveHandleToList(mm1&)
    MoveListToHandle(box&)
    sleep 1000
    clearlist box&
    clearlist
    MoveHandleToList(mm2&)
    MoveListToHandle(box&)
    sleep 1000
    clearlist box&
    clearlist
    MoveHandleToList(mm3&)
    MoveListToHandle(box&)
    sleep 1000
    clearlist box&
    clearlist
    waitinput 20

wend


Nochmals vielen Dank an H.Brill. Aus seinem Code, kann ich wieder was dazulernen.

Servus
Georg
 
XProfan X3
Windows7 Xprofan 8,9,10 [...]  [...] 
25.05.2015  
 




Jörg
Sellmeyer
Mal ne Frage: warum hast du da jeweils ein Sleep 1000 eingebaut? Das bremst das Programm doch unnötig aus.
Oder geht es dir nur drum, dein Programm anschaulich zu machen?
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
25.05.2015  
 




GDL
Hallöle Jörg,

das war nur nen Testschnippsel zum Guggen ob es geht.

Grüßle
Georg
 
XProfan X3
Windows7 Xprofan 8,9,10 [...]  [...] 
25.05.2015  
 



 
- Seite 2 -


Dafür besser waitinput 1000,
sleep kann täuschen weil der Prozess wohlmöglich keine Zeit hat anzuzeigen
was Du zuvor angewiesen hast.

Besser: mySleep(1000)
KompilierenMarkierenSeparieren
mySleep(long a){;whileloop a\100{;waitinput 100;};}
 
25.05.2015  
 



Oder noch 5 Trilliarden Male besser: sleepWell:  [...] 
 
25.05.2015  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

15.917 Betrachtungen

Unbenanntvor 0 min.
H.Brill30.09.2022
Walter05.06.2022
Jörg Sellmeyer16.05.2018
rquindt23.12.2015
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie