| |
|
|
- Seite 1 - |
|
Hubert Binnewies | Hallo zusammen..
Ich hab da eine struktuiertes Bereichsarray als globales Array. Nun bin ich aber gezwungen die Dimensionierung innerhalb eines Proc Endprc zu ändern. Das dabei der Inhalt verloren geht ist egal, aber innerhalb eines Proc Endproc bleibt es nicht global. Hat eine ne Idee wie ich die Grösse ändern kann und das Bereichsarray dennoch global bleibt?
Danke schonmal im voraus.
Hubert
P.S. denkt dran ich habe XProfan 9.1 nicht 10 |
|
|
| WinXP Prof, XProfan 9.1 Newbie
Ein kluger Kopf sagte mal: "Nach dem derzeitigen Stand der Technik ist es unmöglich Programme zu schreiben, die fehlerfrei laufen!" | 23.10.2006 ▲ |
|
|
|
|
| |
|
- Seite 1 - |
|
| Hm ich hab ne Idee!
Deklariere doch 2 Globale!
Merke Dir immer welche Globale Du zuletzt geDimt hast, und nimm dann die andere.
Hilft das? |
|
|
| |
|
|
|
Hubert Binnewies | Leider nein....
Ich habe ein Bereichsarray das am Programmanfang mit dem Inhalt einer Datei gefüllt wird. Die Anzahl der Einträge kann sich aber während des Programmablaufes ändern, und ich lese den Inhalt in einer Procedure aus...und wenn dann das Array zu klein ist habe ich verschissen bis inne Steinzeit...
Ich muss in der Lage sein das Globale Array ( ich brauche den Inhalt an vielen Stellen im Programm ) innerhalb dieser Procedure zu verändern, meinetwegen kann dabei auch der Inhalt verloren gehen da ich sowieso dabei den Dateiinhalt neu lade... Und Deiner Idee nach würde das nur einmal funktionieren, aber das kann in einer unbekannten Anzahl von Fällen passieren.
Hat da nicht einer ne Idee???
Danke schonmal im voraus.
Hubert |
|
|
| WinXP Prof, XProfan 9.1 Newbie
Ein kluger Kopf sagte mal: "Nach dem derzeitigen Stand der Technik ist es unmöglich Programme zu schreiben, die fehlerfrei laufen!" | 23.10.2006 ▲ |
|
|
|
|
| Hm naja dann ist das Problem aber das Array ansich - weil es in XProfan nur statisch definierbar ist.
Probiere es doch mal mit listen? Ich nehme für sowas alles meine eigene Unit - drum hab ich sie ja geschrieben ^^
Eine solche List ist wie ein Array - nur die Größe kann sich ständig ändern und ist nicht statisch.
Lists.Pcu [...]
Sollte die Unit mit XProfan10 kompiliert sein dann kann ich sie Dir - wenn sie bei Dir nicht funktioniert - auch gerne nochmal mit XProfan9 kompilieren. |
|
|
| |
|
|
|
Hubert Binnewies | das ist ne verdammt gute Idee..... Danke.... werde ich morgen früh teste...
Danke
Hubert |
|
|
| WinXP Prof, XProfan 9.1 Newbie
Ein kluger Kopf sagte mal: "Nach dem derzeitigen Stand der Technik ist es unmöglich Programme zu schreiben, die fehlerfrei laufen!" | 23.10.2006 ▲ |
|
|
|
|
Hubert Binnewies | Hallo IF Ich hab mich mit der PCU beschäftigt, Ich muss sagen : Hochachtung.. Die ist ein ziemlich mächtiges Werkzeug, ABER....
[quote:b65a49bb67=iF] Eine solche List ist wie ein Array - nur die Größe kann sich ständig ändern und ist nicht statisch. [/quote:b65a49bb67] Das stimmt schon, aber Leider nur eindimensional. Im Moment brauche ich etwa 15 Dimensionen (Strukturiert). Klar, könnte ich jetzt die erste Liste dazu verwenden die Handels der anderen Listen aufzunehmen (bin ich aber ständig mit dem Wandeln von Ziffen nach String und umgekehrt beschäftigt), womit ich ein mehrdimensionales Array hätte, aber dann ist es zum Beispiel mit Sortieren essig. Müsste ich dann wieder alles selbst programmieren. Wäre doch ein guter Vorschlag : Liste zu verknüpfen, womit man mehrdimensionale Arrays erhält, und wenn man eine sortiert, werden die anderen in der Reihenfolge umgestellt wie die eine die sortiert wird. Und so weiter. Und es wäre schön wenn die lists nicht nur Strings sondern auch Integer und Float aufnehmen könnte.
Hubert |
|
|
| WinXP Prof, XProfan 9.1 Newbie
Ein kluger Kopf sagte mal: "Nach dem derzeitigen Stand der Technik ist es unmöglich Programme zu schreiben, die fehlerfrei laufen!" | 24.10.2006 ▲ |
|
|
|
|
Uwe ''Pascal'' Niemeier | Hallo Hubert!
BereichsArrays kann man recht einfach simulieren: KompilierenMarkierenSeparieren Zur ReDimensionierung musst du nur Mem# ändern. Unter XProfan 9 müsstest du dazu den Inhalt von Mem# in einen zusätzlichen Bereich kopieren, Mem# per Dispose und Dim ändern und die Daten wieder zurückschreiben. Das sollte mit @Char$( ) / Char oder per API möglich sein.
BTW: Bei älteren Profan-Versionen (unter 8 oder so) bricht @Char$( ) das Einlesen von Daten in den String bei Erreichen eines NullBytes ab.
HTH Pascal |
|
|
| |
|
|
|
Hubert Binnewies | [quote:79d768360d=Uwe Pascal Niemeier] Zur ReDimensionierung musst du nur Mem# ändern. Unter XProfan 9 müsstest du dazu den Inhalt von Mem# in einen zusätzlichen Bereich kopieren, Mem# per Dispose und Dim ändern und die Daten wieder zurückschreiben. Das sollte mit @Char$( ) / Char oder per API möglich sein. [/quote:79d768360d] Und genau da liegt mein Problem.... Genau das ist bei meinem Proggi nur innerhalb eines Proc-Endproc möglich. Nur wenn ich innerhalb dieser Procedur das Array Dispose , muss ich es auch neu Declarieren,Strukturieren und Dimensioniern......und....schwups ist es ein lokales und kein globales Array mehr. und wie gesagt, ich brauche den Inhalt nicht zu retten, ich lese den eh immer neu ein, ist nicht anders möglich. Im Moment bin ich versucht (es ist der gangbarste Weg) zu schätzen wieviele Einträge niemals auftauchen können und das Array am Anfang so zu Dimensionieren. Klingt zwar blöd, aber von der heutigen Technik auszugehen sollte genug Hauptspeicher vorhanden sein um ein 18 Dimensionales Array#[1000] mit 11 Strings a´50 Zeichen, einer mit 2000 Zeichen und 6 Integers und das ganze 2 mal aufzunehmen.
Hubert |
|
|
| WinXP Prof, XProfan 9.1 Newbie
Ein kluger Kopf sagte mal: "Nach dem derzeitigen Stand der Technik ist es unmöglich Programme zu schreiben, die fehlerfrei laufen!" | 24.10.2006 ▲ |
|
|
|
|
Uwe ''Pascal'' Niemeier | Hallo Hubert!
Wieso musst du die Bereichsvariable neu declarieren?? Nach DISPOSE solltest du sie direkt mit DIM wieder dimensionieren können, und wenn die Variable global deklariert wurde, spielt es keine Rolle, ob das in einer Proc passiert.
HTH Pascal |
|
|
| |
|
|
|
| <offtopic>Uwes Avatar ist echt stark... </offtopic> |
|
|
| |
|
|
| |
|
- Seite 2 - |
|
|
Hubert Binnewies | @Uwe ich versuchs mal....
kann was dauern bis ich ein Ergebniss habe. Wenns Klappt, HERZLICHEN DANK!!!
@IF Da gebe ich dir recht....Echt stark...
@Uwe Selbst gemalt?? |
|
|
| WinXP Prof, XProfan 9.1 Newbie
Ein kluger Kopf sagte mal: "Nach dem derzeitigen Stand der Technik ist es unmöglich Programme zu schreiben, die fehlerfrei laufen!" | 24.10.2006 ▲ |
|
|
|
|
Uwe ''Pascal'' Niemeier | Hallo Leute!
Zu meinem neuen Avatar: Den hab ich mit PovRay (scriptgesteuerter Freeware-Raytracer) erstellt: [...]
Hier der Quelltext: KompilierenMarkierenSeparieren!
#include "textures.inc"
#include "colors.inc"
#include "glass.inc"
#include "metals.inc"
global_settings{assumed_gamma 1.3}
light_source{<0,100,-100> color White}
camera{location<10,13,-10> look_at<0,0,0> angle 40}
sky_sphere{
pigment{
marble
turbulence 1
color_map{
[0.000 color <1.0,0.7,0.7>]
[0.001 color <0.7,1.0,0.7>]
[0.002 color <0.7,0.7,1.0>]
[0.003 color <1.0,1.0,1.0>]
[0.004 color <0.0,0.0,0.03>]
}
scale 0.1
}
}
#declare Fraktal=
julia_fractal{
<0.5,1,-0.5,0.5>
quaternion
max_iteration 6
precision 600
texture{T_Chrome_5E}
scale <3,3,3>
}
object{Fraktal}
object{Fraktal rotate <0,90,0>}
object{Fraktal rotate <0,0,90>}
sphere{<0,0,0> 1
pigment{rgbt<1,1,1,1>}
interior{
media{
emission 0.5
density{
spherical
color_map{
[0.0 color rgb<0,0,0>]
[0.3 color rgb<1,0,0>]
[1.0 color rgb<1,1,0>]
}
}
}
}
hollow
}
BTW: PovRay kann auch aus externen Dateien lesen (z.B. Koordinaten usw.) Ein gutes Anwendungsgebiet für profane Zusatztools
SeeYou Pascal |
|
|
| |
|
|
|
Hubert Binnewies | Hallo Uwe...
Ich bedanke mich in allerschärfster Form.... Es funktioniert einwandfrei... Vielleicht sollte man daraus ne Proc fürn pff bauen...
Hubert |
|
|
| WinXP Prof, XProfan 9.1 Newbie
Ein kluger Kopf sagte mal: "Nach dem derzeitigen Stand der Technik ist es unmöglich Programme zu schreiben, die fehlerfrei laufen!" | 27.10.2006 ▲ |
|
|
|