Data+Proceduren

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
PMV
Beiträge: 2765
Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg

Beitrag von PMV »

Das hat alles eher was mit der "Lesbarkeit" oder der "Sauberkeit" deines
Quellcodes zu tun :wink: ... mehr Tipparbeit hat hin und wieder doch
seinen Sinn. Das wirst du wohl auch irgend wann noch lernen, früher oder
später :wink:

Aber in der 3.3 gibs z.b. kein EnableExplicit, daher bist du auch nicht
gezwungen, Protected zu nutzen ... dafür hast du besonders viel Spaß bei
Tippfehlern :wink: ... aber das weist du ja eh alles. Habs auch erlich
gesagt mehr für die noch mal erwähnt, die das nicht wissen <)

@edel, ich gaulb mehr, er meinte die Tipparbeit.

MFG PMV
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

Das wirst du wohl auch irgend wann noch lernen, früher oder
später
das bezweifle ich, denn ich bin extrem Faul :D
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
PMV
Beiträge: 2765
Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg

Beitrag von PMV »

STARGÅTE hat geschrieben:
Das wirst du wohl auch irgend wann noch lernen, früher oder
später
das bezweifle ich, denn ich bin extrem Faul :D
ich bin fauler :wink: ... aber dann wirst es wohl schmerzlich erfahren
müssen, wenn du bald deine eigenen Codes nicht mehr lesen kannst ...
so wie ich /:-> ... auch wenn das direkt nur ein Projekt betrifft :oops:

MFG PMV
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

'UseFile()' fand ich damals schon sehr nervig, wenn ich mal was mit Threads
bauen wollte. Aber schlimmer war es noch, als es noch kein #PB_Any gab. :lol:
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

aber ist dieses #PB_Any nicht genau ein widerspruch zu diesem Zitat:
Das hat alles eher was mit der "Lesbarkeit" oder der "Sauberkeit" deines Quellcodes zu tun
klar ist #PB_Any immer noch besser als wenn man sich, wie ich, irgendwelche 4 stelligen zahlen ausdenkt, und hofft das man sie nicht schon mal verwentet hat, aber trotzdem ist ehr besser alles "selber" zu bestimmen ... oder ?
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

Beitrag von ZeHa »

LOL das mit UseFile() und ReadLong(File) ist echt Unsinn, die Festplattenzugriffe sind im Vergleich zu der Parameterübergabe so viel langsamer, daß das wirklich null ins Gewicht fällt.
Dagegen fällt sehr wohl ins Gewicht, daß ein Handling mit UseFile() usw. total schlimm und unübersichtlich ist. Ich war echt froh, daß das mit 4.0 endlich mal umgestellt wurde, und hab mich oft gefragt, warum Fred das anfangs überhaupt so komisch implementiert hat. Sogar unter Visual Basic und QBasic (ja eigentlich zwei der Hauptvertreter der Basic-Dialekte) hat man immer direkt die File-Nummer angegeben.

Zum Thema #PB_Any, eigentlich hast Du nicht viel davon, wenn Du es "selber" bestimmst. Es gibt vielleicht Gründe, wo Du direkten Einfluß auf die Nummern haben willst, z.B. wenn Du Deine Grafiken für Sprites unter den selben Nummern ablegst wie Du sie dann im Code nutzen willst, aber das hängt immer vom gesamten Drumrum ab. Wichtig ist, daß man halt insgesamt ein gutes Ressourcenmanagement aufbaut, und welches Konzept man dann verwendet, hängt wahrscheinlich eher von dessen Implementierung ab.
Bild     Bild

ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

Selbst mit 'UseFile()' wird intern die betriebssystemspezifische Funktion für
die Dateizugriffe verwendet. Und die verlangt wahrscheinlich nicht nur das
Handle zur Datei, sondern auch noch irgendwelche Flags oder sowas.

Naja, bevor das hier jetzt zu einer Grundsatzdiskussion ausartet: Jeder hat
eben seinen eigenen Geschmack. Und solange alles so funktioniert, wie es
soll, sollte man niemanden von seiner Art etwas zu tun abhalten.
Benutzeravatar
PMV
Beiträge: 2765
Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg

Beitrag von PMV »

Ich persönlich nutze ausschließlich #PB_Any. Es gibt sicher Situationen,
wo es keine Rolle spielt, ob #PB_Any oder selber direkt Konstanten zu
definieren. Aber spätestens wenn man z.b. eine größere Menge an
Sprites verwendet ist es besser alle in z.b. verschiedene Arrays zu
schreiben und so die verschiedenen Gruppen an Sprites unterscheiden zu
können, als einen festen Zahlenbereich zu definieren.

MFG PMV
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

irgendwie bin ich hier in der Minderheit :oops:

ich sollte aufhören zu programmieren ^^, mache ja doch alles falsch^^, auch wenn das Ergebnis sehenswert ist.

Aber ich sehe ein das die Updates schon ein guten Grund hatten, sonst hätte es sie ja nicht gegeben ^^.

Gut lassen wir das Thema jetzt ruhen, ich muss wieder coden ^^
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
mk-soft
Beiträge: 3855
Registriert: 24.11.2004 13:12
Wohnort: Germany

Beitrag von mk-soft »

Keine Restore, kein Read. Schneller gehts nicht :mrgreen:

Code: Alles auswählen


Structure udtPos
  x.l
  y.l
EndStructure

Structure udtRaumschiff
  count.l
  pos.udtPos[0]
EndStructure

*daten.udtRaumschiff = ?Raumschiff_1

For n = 0 To *daten\count - 1
  Debug "Daten " + Str(n)
  Debug *daten\pos[n]\x
  Debug *daten\pos[n]\y
Next

DataSection
  Raumschiff_1:
  Data.l  4,  0,-20, -20,20, 0,10, 20,20
EndDataSection
oder

Code: Alles auswählen

Structure udtPos
  x.l
  y.l
EndStructure

Structure udtRaumschiff
  count.l
  pos.udtPos[0]
EndStructure

Procedure CreateRaumschiff(*daten.udtRaumschiff)

  With *daten
    For n = 0 To \count - 1
      Debug "Daten " + Str(n)
      Debug \pos[n]\x
      Debug \pos[n]\y
    Next
  EndWith

EndProcedure

CreateRaumschiff(?Raumschiff_1)

DataSection
  Raumschiff_1:
  Data.l  4,  0,-20, -20,20, 0,10, 20,20
EndDataSection
Nur ein bischen Strukturtipperei :allright:
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Antworten