| |
|
|
Andreas Koch | Hallo zusammen,
ich habe eine Frage bezüglich der Befehle "writeini" und "readini": Gibt es eine Beschränkung für die Größe der verwendeten Ini-Datei? Für die win.ini ist die Grenze anscheinend bei 64kb. Gilt das auch für die von Profan generierten ini-Dateien? Danke und schönen Gruß
Andreas Koch |
|
|
| |
|
|
|
Jörg Sellmeyer | Hiermit komme ich auf eine Größe von 64mb bei einer Stringlänge von 32766.
Var Datei$ = GetDir$("@") + "\\Test.ini"
Print Datei$
WhileLoop 100000
writeini Datei$,"Test","Eintrag" = + MkStr$("A",&Loop) + " " + Str$(Len(ReadIni$(Datei$,"Test","Eintrag")))
'Case %ioresult:Break 'hier ist nach wenigen Einträgen Schluss, wenn man es drinlässt
Locate 2,1
Print FileSize(Datei$)'das hier zählt noch, wenn auch die maximale Stringlänge erreicht ist!
Print Len(ReadIni$(Datei$,"Test","Eintrag"))
Wend
'ShellExec(Datei$,"Open",0) ' nicht zu empfehlen, wenn die Datei größer wird
waitinput
|
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 27.04.2012 ▲ |
|
|
|
|
| Wiederum bei älteren Profan-Versionen die Grenze imho bei 32kB lag. |
|
|
| |
|
|
|
Jörg Sellmeyer | Die giilt ja offensichtlich immer noch. Die Dateigröße ist ja irrelevant, wenn Readini nicht alles ausliest. |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 27.04.2012 ▲ |
|
|
|
|
Andreas Koch | Demnach wäre aber nur die Größe eines EINTRAGS in einer ini-Datei auf 32kb begrenzt und folglich die Begrenzung für die Funktionen "readini" und "writeini".
Ich habe der fertigen ini-Datei aus obigem Beispiel einen zusätzlichen Eintrag angefügt und diesen anschließend erfolgreich auslesen können. Die Datei an sich kann also größer sein als 64kb. Interessant wäre es für mich nun, zu wissen, ob es für die Dateigröße der ini-Datei eine Beschränkung gibt. |
|
|
| |
|
|
|
Jörg Sellmeyer | Du brauchst ja nur mal eine Inidatei mit x Einträgen von jeweils 32k erstellen. Baust Du die Schleife oben etwas um. |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 27.04.2012 ▲ |
|
|
|
|
| Schade das für XProfan (noch) keine assoziativen Arrays samt Funktionen wie "serialze"/ "unserialize" existieren. |
|
|
| |
|
|
|
Andreas Koch | Ich habe Jörgs Vorschlag umgesetzt und den "Beschreibenvorgang" nach einer knappen Stunde bei 100MB abgebrochen. Anschließend habe ich unten wieder einen Eintrag angehängt und diesen erfolgreich auslesen können. Anscheinend gibt es also keine Grenze für die Größe, mir reichen 100MB in jedem Fall.
Ich habe zwar keine Ahnung, was ein assoziatives Array ist, wäre aber schon mit einem dynamischen 2D-Array und ein paar funktionsfähigen Matrixoperationen glücklich.
Jedenfalls noch mal Danke für die Hilfe. |
|
|
| |
|
|
|
| Dynamische 2D-Arrays und Matrixoperationen sind wiederum mit XProfan kein Problem.
Der Unterschied zwischen einem indizierten und assoziativen Arrays ist, dass im Gegensatz zum Indizierten statt Nummern eher Schlüsselworte als Indizes verwendet werden:
'normal
a[0]=10
a[1]=20
'assoz
a["jux"]=10
a["dallerei"]=20
Solche Arrays sind ein sehr mächtiges Werkzeug. |
|
|
| |
|
|
|
Andreas Koch | Hört sich nicht schlecht an, das mit den assoziativen Arrays.
Aber: Wenn dynamische 2D Arrays und Matrixoperationen mit XprofanX2 kein Problem sind, mache ich irgendwas falsch.
Bis jetzt konnte ich dynamische 2D Arrays nur in einer Prozedur, der ich die Größe übergebe, deklarieren und bearbeiten. Das schränkt schon sehr ein, vor allem, wenn man das Array auch global gebrauchen könnte. Außerdem lassen die MAT-Operationen bei mir immer das Programm "abschmieren". Da gab es auch einmal ein Forumthema zu.
Vermutlich bin ich einfach von MATLAB verwöhnt.... |
|
|
| |
|
|