Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Pointer auf Konstanten

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 20.05.2006, 13:53    Titel: Pointer auf Konstanten Antworten mit Zitat

Im moment bastle ich mit Pointern rum.

Das ganze klappt soweit so gut, was ich aber beim besten Willen nicht schaffe ist es einen Pointer auf eine Konstante zeigen zu lassen.

z.B.
Code:
Dim a as string
dim b as string ptr
Const Hallo="Hallo Welt"
b=@Hallo

? Hallo
? *b

sleep

oder
Code:
Dim a as string
dim b as any ptr
dim c as string ptr
Const Hallo="Hallo Welt"

b=@Hallo
c=b
? Hallo
? *c

Beides klappt nicht.

Auch die Methode von http://www.freebasic.net/wiki/wikka.php?wakka=KeyPgAt will nich gehen;
Code:
dim b as string ptr
b=@"Hallo Welt"
? *b


Hat mir jemannd einen Tipp?

Dank im voraus.
_________________
http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 20.05.2006, 14:24    Titel: Antworten mit Zitat

definiers einfach als normale variable? oO

bei deinem zweiten beispiel: Pointer zeigen auf speicherplätze, wenn du keine variable sondern nur nen direkten string hast gibts auch keinen solchen speicherplatz, das is klar das das ned geht. Bei konstanten weiß ich nich obs genauso is, könnte aber sein.

/edit: Obwohl laut referenz sollte es gehen, ich habs nie probiert, würde es aber spontan einfach vermeiden, so schwer is das ja nich..
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 20.05.2006, 14:49    Titel: Antworten mit Zitat

Hi,
einer Konstanten wird kein Speicherplatz (keine Adresse) zugewiesen.
Daher kann man auch keinen Pointer/Zeiger auf eine Konstante zeigen lassen.
Taucht der Name der Konstanten im Quelltext auf, wird der ihr zugewiesene Wert vom Compiler dort eingesetzt.

Gruß Volta
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 20.05.2006, 14:52    Titel: Antworten mit Zitat

Unsere Computer haben ja eine von Neuman Architecktur, Programm Code, Variababeln und Konstanten liegen offen nebeneinander.
Von dem her sollte es schon gehn.

Zitat:
definiers einfach als normale variable? oO

Braucht mehr Speicherplatz zwinkern.
Zudem geht es mir auch "um's prinzip" zwinkern.

Zitat:
bei deinem zweiten beispiel: Pointer zeigen auf speicherplätze, wenn du keine variable sondern nur nen direkten string hast gibts auch keinen solchen speicherplatz, das is klar das das ned geht. Bei konstanten weiß ich nich obs genauso is, könnte aber sein.

Wenn ich mir den von Freebasic erzeugten ASM Code Ansehe, fällt mir die Konstanten Tabelle am Schluss auf, genau darauf will ich meinen Pointer ausrichten.
Wie gesagt:
Dank von Neuman Architektur sollte es gehen.

Ein Idee habe, vielleicht geht sie.
_________________
http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 20.05.2006, 14:59    Titel: Antworten mit Zitat

braucht mehr speicherplatz!?!?

hallo?

wir leben in einer welt wo es rechner mit mehreren GIGAbyte ram gibt! Wen interessieren da die 2 byte die das vielleicht mehr verbraucht? Systemressourcen gibts heute meistens im Überfluss! so knickerig muss man nun echt ned sein durchgeknallt
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 20.05.2006, 15:22    Titel: Antworten mit Zitat

Ich finde das ausgezeichnet, wenn sich Programmierer heute noch um ressourcensparende Software bemühen, damit die Programme auch auf einem alten Pentium I mit 133MHz und 32MB RAM noch praktikabel laufen! lächeln
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 20.05.2006, 15:25    Titel: Antworten mit Zitat

@MisterD
Okey, stimmt auch wieder.
_________________
http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Michael712
aka anfänger, programmierer


Anmeldungsdatum: 26.03.2005
Beiträge: 1593

BeitragVerfasst am: 20.05.2006, 17:40    Titel: Antworten mit Zitat

Sebastian hat Folgendes geschrieben:
Ich finde das ausgezeichnet, wenn sich Programmierer heute noch um ressourcensparende Software bemühen, damit die Programme auch auf einem alten Pentium I mit 133MHz und 32MB RAM noch praktikabel laufen! lächeln


Naja, aber bei 2 Byte(nachdem was MisterD sagt)?
Da sollte man nicht so "kleinlich" sein.
Wenn es um mehrere kilobyte oder sogar megabyte handelt, dann würd ich auch sparen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 20.05.2006, 18:16    Titel: Antworten mit Zitat

Zudem ist Freebasic selbst eigentlich eine dicke Resourcen Schleuder.

Schon aufgefallen, das bei fast jedem Compiler Update die Exe Dateien grösser werden?

Das mit den 2 Byte stimmt vielleicht für die Exe Datei, aber die "Ram Belastung" ist "viel grösser" weil der String dann doppelt Vorhanden ist.
Einmal als Konstante und einmal als Variable.
_________________
http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 20.05.2006, 18:27    Titel: Antworten mit Zitat

mach ihn doch nur als variable x) wo is da das problem?
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
vspickelen



Anmeldungsdatum: 12.06.2005
Beiträge: 13
Wohnort: Holland

BeitragVerfasst am: 22.05.2006, 14:39    Titel: Antworten mit Zitat

Drei Typen übersichtlich dargestellt:

Code:
dim a as zstring ptr
a = @"Zeichenkette feste L„nge"
print *a

const k$ = "Konstante Zeichenkette"
a = @k$
print *a

dim b as string ptr
s$ = "beliebig" + chr$(0) + "lange Zeichenkette"
b = @s$
print *b

dim c as byte ptr
c = @"Byte-Array, nullterminiert"
do
   print chr$(*c);
   c += 1
loop until *c = 0
sleep


Grüß,
vspickelen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 22.05.2006, 16:55    Titel: Antworten mit Zitat

Danke vspickelen,
jetzt sind Konstanten keine Konstanten mehr grinsen
Code:
Mid(..)="Neuer Inhalt"
funktioniert, auch eine NeuZuweisung
(Naja, die noch nicht so ganz..)
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Lutz Ifer
Grillmeister


Anmeldungsdatum: 23.09.2005
Beiträge: 555

BeitragVerfasst am: 22.05.2006, 17:06    Titel: Antworten mit Zitat

konstanten und konstant? hat sich was.

Code:
const bla = "hallo"
print bla
bla = "hi"
print bla
sleep


ausgabe hat Folgendes geschrieben:
hallo
hi llo

_________________
Wahnsinn ist nur die Antwort einer gesunden Psyche auf eine kranke Gesellschaft.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 22.05.2006, 17:11    Titel: Antworten mit Zitat

Kucke an, das wußte ich nicht, hatte ich auch noch nie probiert..
Also ist die Const-Anweisung nur Augenwischerei?
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 22.05.2006, 17:22    Titel: Antworten mit Zitat

Wieder mal ein Typischer Bug.
Report auf SF.Net
In der nächsten FB Version sollte der Fehler dann behoben sein.

Edit:
@vspickelen
Daumen rauf! Genau das wollte ich!
Danke!
_________________
http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Michael712
aka anfänger, programmierer


Anmeldungsdatum: 26.03.2005
Beiträge: 1593

BeitragVerfasst am: 22.05.2006, 17:31    Titel: Antworten mit Zitat

Wenn man möchte, das statt ner variable direkt die zahl/zeichenkette in den programm code geschrieben wird, dann geht das doch ganz einfach mit #define.

Code:

#define ein_string "hallo"

Print ein_string

'geht nicht: ein_string="hi"


Da kann man auch nichts mehr ändern.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 22.05.2006, 20:31    Titel: Antworten mit Zitat

Lutz Ifer hat Folgendes geschrieben:
konstanten und konstant? hat sich was.
Ein klares und entschiedenes Jein vor lachen auf dem Boden rollen
Also das mit den Strings habe ich ja probiert, da sind die Consts<>Const..
Das wollte ich mir zunutze machen für Dreieck.Bas, weil ich dann den Winkelmodus Const gemacht hätte.
Bei Bedarf wäre dann der Const-Wert gewechselt worden..
..aus der 'Traum': Bei Zahlen geht das nähmlich nicht, die erhalten keine Adresse,
folglich kann auch kein Pointer drauf zeigen..
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz