Français
Forum

Listview avec En-tête Sauver

 
- page 1 -



Uwe
Lang
j'ai dans meinen Programme avec qui Listview.dll un Listview erstellt. eh bien voudrais Je l' le contenu comme CSV Dossier Sauver zusammen avec dem En-tête qui Tabelle. comment muss Je l' Speicherbereich de HeaderToCSV (lvhed#) dans WriteFileQuick einbauen avec cela qui En-tête et qui Tabelleninhalt zusammen dans un Dossier gespeichert wird?
nuit etlichen erfolglosen versuchen sais je pas plus.
Proc CSV_Speichern

    Déclarer tx$,xs&,lvber#,hd&,lvhed#
    Faible lvhed#,1848'Anzahl Spalten * 264
    tx$ = datname$
    xs&=GetNeededMemory(lv&,1)
    Faible lvber#, xs&
    hd&=HeaderToCsv(lv&,lvhed#,59,1)
    xs&=ListviewToCsv(lv&,lvber#,59,1)
    WriteFileQuick(addr(tx$),lvber#,0,(hd& + xs&))
    Dispose lvber#
    Dispose lvhed#

ENDPROC

 
XProfan X2
Gruß,
Uwe Lang

(Windows 10, XProfan X3) 
14.09.2015  
 



« cette Beitrag wurde comme Solution gekennzeichnet. »

- page 1 -



H.Brill
comment je vois, la hâte du oui aussi XProfan X3.
il peut durchaus un Listview, cela avec qui
Listview.dll erstellt worden ist, avec XProfans
eigenen Funktionen Travailler. c'est avec cela
aussi pas absolument vorgeschrieben, den
le contenu des Listview dans une Speicherbereich trop
schieben, um cette ensuite avec WritFileQuick()
trop Sauver.
dans den folgenden Procs verwende je qui wunderbaren
neuen Move-Funktionen :
Proc Lade

    Déclarer Int bytes1, bytes2
    Déclarer String En-tête
    ClearList 0
    Move("FileToList", fichier)
    En-tête = GetString$(0, 0)' ici la hâte du qui Headerzeile
    DeleteString(0, 0)
    ' qui Headerzeile simple dans En-tête Sauver et dans qui
    ' Listboxliste effacer. maintenant peux du avec dem En-tête
    ' faire, quoi du vorhast ou bien veux.
    ClearList grid
    Move("ListToHandle", grid)

ENDPROC

Proc Speichere

    Déclarer Memory bereich1
    Faible bereich1, 256
    Déclarer Int bytes1, bytes2, anzahlColumns
    Déclarer String En-tête
    anzahlColumns = GetColumns(grid)

    WhileLoop 0, anzahlColumns - 1

        Claire bereich1
        GetColumnName(grid, bereich1, &LOOP)

        Si &LOOP < (anzahlColumns - 1)

            En-tête = En-tête + String$(bereich1, 0) + »

        D'autre

            En-tête = En-tête + String$(bereich1, 0)

        EndIf

    Endwhile

    ClearList 0
    AddStrings(0, En-tête)
    Move("HandleToList", grid)
    Move("ListToFile", fichier)
    Messagebox(fichier + " gespeichert", "Info", 0)
    Dispose bereich1

ENDPROC


cela Handle grid est un avec qui Listview.dll erstelltes
Listview. cela klappt chez mir wunderbar.
comment on voit, laisser sich qui Vorteile qui Listview.dll
(editierbare Felder, PrintListview usw.) avec den neuen
Vorteilen de XProfan X3 prima kombinieren. cela allez
aussi anders rum, alors une avec XProfan erstellte Gridbox
et den Funktionen qui Listview.dll.

PS : si là maintenant un Komma ou bien un | entre den
Entrées steht, pourrait égal son. si es toi stört,
peux du vous oui austauschen.
je hoffe, je konnte dir quelque chose aider.
 
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.
20.09.2015  
 



 
- page 1 -


comment je cela vois écrit writefilequick 1 grenier dans 1 Dossier.

Reserviere Dir 1 grenier aussi grand comment lvhed# et lvber# zusammen.

Kopiere lvhed# et lvber# dans den neuen grenier.

writefilequick neuen grenier.
DEF @copymem(3) !"kernel32","RtlMoveMemory"
declare mem#
dim mem#,sizeof(lvhed#)+sizeof(lvber#)
copymem(addr(mem#),addr(lvhed#),sizeof(lvhed#))
copymem(addr(mem#)+sizeof(lvhed#),addr(lvber#),sizeof(lvber#))
... writefilequick ... mem#

Code ungetestet ici simple reingepinselt seulement zum Verständnis.
 
14.09.2015  
 




Uwe
Lang
merci pour qui schnelle Antwort,
cela J'ai eu dans ähnlicher forme aussi déjà. avec dem selben Ergebnis, qui En-tête wird geschrieben et après wird qui le contenu qui banque de données total déménagé. cela sieht so aus comme si qui Taille des Speicherbereichs des Headers größer ist comme berechnet b.z.w vorgegeben.
je muss sur cela Problem encore einmal dans Ruhe sur).
 
XProfan X2
Gruß,
Uwe Lang

(Windows 10, XProfan X3) 
14.09.2015  
 




H.Brill
lvhead# ist oui aussi pas grand genug.
Am besten ist es, le nombre qui tatsächlichen
Spalten trop ermitteln. Aussi sommes qui Kommas
(Anzahl spalten - 1) en supplément trop le calcul. si comme
Flag chez HeaderToCSv() encore qui Anführungszeichen
en supplément venons (Flag = 0) dois du aussi encore pro
Spalte deux " mitrechnen. Aussi ist encore cela
Nullbyte am Ende des Cordes im Bereich en supplément trop
zählen.

oui c'est ca cet Anzahl bringt dir ensuite HeaderToCsv().
là on den Bereich spalten * 264 + qui zus. Kommas
usw.prendre doit (avec GetColumns(H) bekommt on
oui le nombre Spalten des Grid heraus), wäre es am
besten, une separaten Bereich avec dem Ergebnis
de HeaderToCsv() trop dimmen et soviele
Bytes vom alten Bereich dans den Neuen trop kopieren.

je denke la fois, c'est cela Sicherste.
 
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.
15.09.2015  
 




Uwe
Lang
je viens seulement maintenant en supplément trop répondre,
so comment je cela Problem lösen voulais habe je es pas hinbekommen. j'ai cela Ganze seulement einmal comme Notlösung so gemacht, le moi dans cela Listview une le vide la ligne à Position 0 einfüge et après qui Spaltenköpfe auslese et den Text dans qui entsprechenden Felder eintrage. Pour dem Sauver entferne je qui la ligne wieder aus dem Listview. cela kurze Geruckel fällt pas sur, là je avant dem Sauver encore données aus einem anderen Listview hineinkopiere.
quand même merci pour qui Hinweise.
si je wieder quelque chose plus Zeit habe, werde je mir cela Problem encore einmal anschauen.
 
XProfan X2
Gruß,
Uwe Lang

(Windows 10, XProfan X3) 
20.09.2015  
 




H.Brill
comment je vois, la hâte du oui aussi XProfan X3.
il peut durchaus un Listview, cela avec qui
Listview.dll erstellt worden ist, avec XProfans
eigenen Funktionen Travailler. c'est avec cela
aussi pas absolument vorgeschrieben, den
le contenu des Listview dans une Speicherbereich trop
schieben, um cette ensuite avec WritFileQuick()
trop Sauver.
dans den folgenden Procs verwende je qui wunderbaren
neuen Move-Funktionen :
Proc Lade

    Déclarer Int bytes1, bytes2
    Déclarer String En-tête
    ClearList 0
    Move("FileToList", fichier)
    En-tête = GetString$(0, 0)' ici la hâte du qui Headerzeile
    DeleteString(0, 0)
    ' qui Headerzeile simple dans En-tête Sauver et dans qui
    ' Listboxliste effacer. maintenant peux du avec dem En-tête
    ' faire, quoi du vorhast ou bien veux.
    ClearList grid
    Move("ListToHandle", grid)

ENDPROC

Proc Speichere

    Déclarer Memory bereich1
    Faible bereich1, 256
    Déclarer Int bytes1, bytes2, anzahlColumns
    Déclarer String En-tête
    anzahlColumns = GetColumns(grid)

    WhileLoop 0, anzahlColumns - 1

        Claire bereich1
        GetColumnName(grid, bereich1, &LOOP)

        Si &LOOP < (anzahlColumns - 1)

            En-tête = En-tête + String$(bereich1, 0) + »

        D'autre

            En-tête = En-tête + String$(bereich1, 0)

        EndIf

    Endwhile

    ClearList 0
    AddStrings(0, En-tête)
    Move("HandleToList", grid)
    Move("ListToFile", fichier)
    Messagebox(fichier + " gespeichert", "Info", 0)
    Dispose bereich1

ENDPROC


cela Handle grid est un avec qui Listview.dll erstelltes
Listview. cela klappt chez mir wunderbar.
comment on voit, laisser sich qui Vorteile qui Listview.dll
(editierbare Felder, PrintListview usw.) avec den neuen
Vorteilen de XProfan X3 prima kombinieren. cela allez
aussi anders rum, alors une avec XProfan erstellte Gridbox
et den Funktionen qui Listview.dll.

PS : si là maintenant un Komma ou bien un | entre den
Entrées steht, pourrait égal son. si es toi stört,
peux du vous oui austauschen.
je hoffe, je konnte dir quelque chose aider.
 
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.
20.09.2015  
 




H.Brill
ici encore un Abfallprodukt, um besser Stringadressen
dans une Bereich trop schaufeln, wobei vorteilhaft ist, qui
es aussi avec Variablen allez. Ist jedenfalls einfacher, comme
einzeln avec den Bereichsbefehlen trop hantieren.
SItem() qui Listview.dll verlangt oui quelque chose comme :
SUBPROC Move.StringAdrToMem

    Paramètres String s, String d, Memory B
    ' s = qui zusammengesetzte String
    ' d = qui Trenner
    ' B = qui Bereich
    Déclarer Long anzahl
    Déclarer String TArray[]
    ClearList 0
    Claire B, TArray[]
    anzahl = Move("StrToList", s, d)
    anzahl = Move("ListToArr", TArray[])
    Var Int z = 0

    WhileLoop 0, anzahl - 1

        Long B, z = Addr(TArray[&LOOP])
        Inc z, 4

    Endwhile

    Retour anzahl

ENDPROC

Déclarer Memory bereich
Faible bereich, 12' pour 3 Stringadressen
Claire bereich
Move("StringAdrToMem", "Maier,Hamburg,4711", », bereich)
SItem(grid, bereich, 3)
Claire bereich
eintrag = "Müller,Berlin,4714"
Move("StringAdrToMem", eintrag, », bereich)
SItem(grid, bereich, 3)

peut-être peux es oui quelqu'un brauchen.
 
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.
21.09.2015  
 



Bestimmt, mais ici dans diesem Thema serait il es oui pas trouver.

Besser ici chez den Quelltexten posten:  [...] 
 
21.09.2015  
 




H.Brill
là la hâte du droite.
quoique je pas sais, pourquoi obiges funktioniert.
Hatte avant einiger Zeit cela ausprobiert et était erstaunt.
normalement devrait doch pour qui Proc bzw. SubProc
cela TArray[] wieder freigegeben worden son bzw. pas
plus existieren. cela TArray[] ist oui bistrot défini.
Somit devrait aussi qui Stringadressen dans diesem pas
plus existieren. quand même peux on vous außerhalb nutzen.

je pourrait mir au maximum penser, qui cet Arrays
quand même global sommes.

ou bien hat sonst encore quelqu'un une Erklärung pour ?
 
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.
21.09.2015  
 



il y a là naturellement plusieurs Mgl.

Auszuschließen ist vlt, dass chez:

proc so
declare lala[]
cela lala de Roland global comme __int__proc_so_lala[] verarbeitet
wird car sonst serait z.B. Rekursion pas marcher.
Funktioniert vous?

je schätze plutôt, dass ici Windows tut quoi es toujours tut:
Speicherhandle freigeben mais Speicherinhalt dabei pas antasten
et simple überschreiben si la fois wieder nécessaire.

ou bien Roland hat simple nochmal un eigenes Management drübergelegt.
 
22.09.2015  
 




H.Brill
je crois, avec deiner Vermutung avec Windows
la hâte du droite. Hab la fois quelque chose gespielt :
Déclarer Long t[]
Cls
TesteArray()
Imprimer
Imprimer t[0], String$(t[0], 0)
Imprimer t[1], String$(t[1], 0)
Imprimer "Addresse : "; t[0]; " le contenu : "; String$(t[0], 0)
Imprimer "Addresse : "; t[1]; " le contenu : "; String$(t[1], 0)
Imprimer t[0], String$(t[0], 0)
Imprimer t[1], String$(t[1], 0)
WaitKey
Fin

Proc TesteArray

    Déclarer String lokalarray[]
    lokalarray[0] = "Hallo"
    lokalarray[1] = "Welt"

    WhileLoop 0, 1

        Imprimer lokalarray[&LOOP]
        t[&LOOP] = Addr(lokalarray[&LOOP])

    Endwhile

    Claire lokalarray[]

ENDPROC


alors, sortir de peux on sich puis pas. cela
sieht on, si nochmals Cordes ("blabla") avec ins
Spiel venons. Deswegen ist attention geboten,
si entre Proc-Aufruf et Weiterverabeitung
encore quoi d'autre gemacht wird.
 
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.
22.09.2015  
 



 
- page 2 -



Uwe
Lang
Pour längerer Abwesenheit viens je seulement maintenant wieder en supplément, mich dem Problem encore einmal trop widmen.
j'ai maintenant qui dessus beschriebene variante gewählt et alles avec den XProfan Bordmitteln gelöst.

mon Dank à alle, qui mir avec den Anregungen geholfen avons.
 
XProfan X3
Gruß,
Uwe Lang

(Windows 10, XProfan X3) 
22.10.2015  
 



[OFFTOPIC]optimal den entsprechenden Beitrag comme Solution markieren.[/OFFTOPIC]
 
22.10.2015  
 




répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

12.441 Views

Untitledvor 0 min.
Sven Bader13.02.2023
Uwe Lang13.04.2020
p.specht21.10.2019
RudiB.08.08.2019
plus...

Themeninformationen

cet Thema hat 3 participant:

H.Brill (5x)
iF (4x)
Uwe Lang (4x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie