Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Mecki Igel

Anmeldungsdatum: 10.09.2004 Beiträge: 985 Wohnort: Niederbayern
|
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 12.07.2006, 09:11 Titel: Re: bug or feature? |
|
|
infinity hat Folgendes geschrieben: | Naja - in der Onlinehilfe ist Programmierbeispiel, das genauso aussieht, nur eben mit double statt string. |
Setzt bitte Links, damit ersparst du uns das raussuchen und Rätselratten, was du genau meinst.
infinity hat Folgendes geschrieben: | Ich hatte gehofft, dass es dafür ein Patch oder ein geniales Workaround gibt.
Hmm. Danke jedenfalls erstmal fürs mitraten. |
Hast du die Deklaration mit ZString statt String versucht?
Genau so eine Verwechslung kann sowas zur folge haben.
Der String von Freebasic entspricht nicht dem String von C / C++ etc. _________________ 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 |
|
 |
infinity
Anmeldungsdatum: 11.07.2006 Beiträge: 5
|
Verfasst am: 12.07.2006, 22:49 Titel: Re: bug or feature? |
|
|
Michael Frey hat Folgendes geschrieben: |
Setzt bitte Links, damit ersparst du uns das raussuchen und Rätselratten, was du genau meinst. |
Geht am einfachsten wenn man mit F1 die Online-Hilfe startet und dann im Verzeichnis "..." auswählt.
Von mir aus auch der Link, aber der bringt ned viel:
mk:@MSITStore:<Installpath>\ide\fb-manual.chm::/KeyPgDots.html
Michael Frey hat Folgendes geschrieben: |
Hast du die Deklaration mit ZString statt String versucht?
Genau so eine Verwechslung kann sowas zur folge haben.
Der String von Freebasic entspricht nicht dem String von C / C++ etc. |
Bisher nicht. Ich hab deinen Vorschlag nun aber probiert und musste feststellen, dass ZString in diesem Zusammenhang kein zulässiger Datentyp ist.
Ich glaub ich beweg mich jetzt doch besser Richtung Bug-Report. Danke nochmals. |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 12.07.2006, 23:02 Titel: |
|
|
normalerweise sollte es gehen wenn du den string mit fester länge definierst, sprich
dim varname as string*1024 'für 1024 zeichen maximal
und die funktion dann mit
funktion(strptr(varname))
aufrufst, das sollte eigentlich funktionieren. Wichtig ist nur a) die feste länge und b) das strptr. _________________ "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 |
|
 |
infinity
Anmeldungsdatum: 11.07.2006 Beiträge: 5
|
Verfasst am: 13.07.2006, 00:57 Titel: |
|
|
MisterD hat Folgendes geschrieben: | normalerweise sollte es gehen wenn du den string mit fester länge definierst, sprich
dim varname as string*1024 'für 1024 zeichen maximal
und die funktion dann mit
funktion(strptr(varname))
aufrufst, das sollte eigentlich funktionieren. Wichtig ist nur a) die feste länge und b) das strptr. |
Hilft leider auch nicht. Da bei VA_ARG der Datentyp im Klartext steht - sprich nicht vorher per DIM definiert werden kann - ist es wahrscheinlich sowieso zwecklos, weils dann zwar mit fixer Länge übergeben wird, aber dann erst recht wieder mit dynamischer Länge ausgelesen.
Aber ich habs mittlerweile bei SF als Compiler-Bug eingereicht. Andre Victor muss es ja wissen  |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 13.07.2006, 02:48 Titel: |
|
|
du verstehst das falsch. Strings wie FB sie benutzt gibt es eigentlich nicht, das is n komisches gemurkse. Und wenn du dem ding nen string übergibst dann gibst du ihm wahrscheinlich nur die position des ersten zeichens und der string hört dann da auf, wo ein sogenanntes 0-byte, ein byte mit dem wert 0 eben ist. und genauso schreibt dieses teil dir den string auch wieder in den speicher. Problem dabei ist, dass der speicher eben nicht reserviert ist und das teil somit in ungültige bereiche schreibt. Also machst du feste länge - so lang wie der string maximal werden kann - dann ist der speicher reserviert und das ganze sollte funktionieren. _________________ "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 |
|
 |
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 13.07.2006, 03:34 Titel: |
|
|
Wieso so kompliziert?
Einfach strptr() benutzen. So kann man den Datentyp String behalten, und trotzdem ist das für c/c++ ein normaler string. |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 13.07.2006, 10:02 Titel: |
|
|
infinity hat Folgendes geschrieben: | Aber ich habs mittlerweile bei SF als Compiler-Bug eingereicht. Andre Victor muss es ja wissen  |
Setzt doch endlich mal Links wenn du solche Hinweisse machst ...
Wenn der Text dort ähnlich wie der hier ist, hat v1ctor wird deine Bugmeldung woll schon entsorgt.
Kein Code, kein Support.
(schlechtes Englisch ist aber kein Problem, hab ich selbst ausprobiert )
Zitat: | Geht am einfachsten wenn man mit F1 die Online-Hilfe startet und dann im Verzeichnis "..." auswählt.
Von mir aus auch der Link, aber der bringt ned viel:
mk:@MSITStore:<Installpath>\ide\fb-manual.chm::/KeyPgDots.html |
...
Link
Nur weil du mit einer Angabe nicht weiter kommst, must du nicht auf andere schliessen ...
Und Poste endlich mal den ganzen Quellcode, ich hasse dieses Rätsel raten ... mit dem Fragment kann kein Mensch etwas Anfangen:
Code: | function menu cdecl (menucount as integer, ...) as string |
Ich weiss da nur, die Verwendung von String ... ach was solls.
Ab sofort:
Ich ignoriere dein Beiträge und vorallem diesen Thread, bis ich den Gesamten Quellcode sehe. (Genau der Quellcode der zum Absturz führt) _________________ 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 |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 13.07.2006, 11:41 Titel: |
|
|
programmierer hat Folgendes geschrieben: | Wieso so kompliziert?
Einfach strptr() benutzen. So kann man den Datentyp String behalten, und trotzdem ist das für c/c++ ein normaler string. |
Rate mal, wieso
dim empfangen as string
recv(verbindung, strptr(empfangen), 1024)
nicht funktionieren wird.. die recv funktion schreibt an die anfangsposition von empfangen, da empfangen aber kein string fester länge ist wurde kein speicher reserviert, der wird nur reserviert wenn du den string über die freebasic-internen routinen erstellst, das is eben das problem mit FB-Strings, dass man denkt, dass das so einfach ist, Recv aber schreibt einfach bis zu 1kb daten dann an die position - speicher nicht reserviert - absturz. so einfach ;p deswegen brauchst du nicht einfach nur strptr sondern auch noch fixed lenght. _________________ "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 |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 13.07.2006, 12:54 Titel: |
|
|
[Mode:OT=ON]
Was is'n hier passiert?
[Mode:OT=OFF] _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 13.07.2006, 14:05 Titel: |
|
|
@MisterD: ah, ja, stimmt, ok
@Mao: Das is ein Teil des Threads aus dem freebasic.de bug report, ich denke, so ist das übersichtlicher, und desswegen wurd das gemacht. |
|
Nach oben |
|
 |
infinity
Anmeldungsdatum: 11.07.2006 Beiträge: 5
|
Verfasst am: 13.07.2006, 18:17 Titel: |
|
|
Michael Frey hat Folgendes geschrieben: | Nur weil du mit einer Angabe nicht weiter kommst, must du nicht auf andere schliessen ... |
Die Aussage kam eher daher, weil ein Filelink auf meine Festplatte niemandem etwas bringt, aber ich davon ausging, dass jeder Leser die Online-Hilfe auf seiner eigenen Platte hat, wenn er IDE laufen hat.
Zitat: | Und Poste endlich mal den ganzen Quellcode, ich hasse dieses Rätsel raten ... mit dem Fragment kann kein Mensch etwas Anfangen: |
Wollte ich deswegen nicht, weil ich vorerst nur in Erfahrung bringen wollte, ob hier jemand diese Funktion schon mal aktiv verwendet hat. Ich war nicht auf der Suche nach Support für Syntax/Quellcodeanalyse.
Ist aber egal, weil mittlerweile: solved.
Compiler-Bug 0.15, mit 0.16 sollte es laufen. Ich hatte nicht bemerkt, dass der eigentliche Auslöser das input$() war. Hier muss ich mir wohl nachsagen lassen, dass ich nicht die aktuellste Compilerversion verwendet habe, es würde aber helfen, wenn auf freebasic.de unter "aktuelles Komplettpaket" auch die aktuelle Version zu finden wäre. Derzeit ist dort aber eine 0.15 als "aktuell":
http://www.freebasic.de/FBdownloads.php?zeig=downloads&in1=&in2=Compiler
@Mecki:
kannsu mal zumindest den Text auf "ist alte Version, neuester Compiler extra zu installieren" ändern oder eventuell sogar ein neues Paket einspielen? *liebschau*
Und nochmal sorry wegen OT-posting.[/url] |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 14.07.2006, 10:06 Titel: |
|
|
infinity hat Folgendes geschrieben: | Ich hatte nicht bemerkt, dass der eigentliche Auslöser das input$() war. |
Genau das meinte ich mit
Zitat: | Und Poste endlich mal den ganzen Quellcode, ich hasse dieses Rätsel raten ... mit dem Fragment kann kein Mensch etwas Anfangen: |
infinity hat Folgendes geschrieben: | Wollte ich deswegen nicht, weil ich vorerst nur in Erfahrung bringen wollte, ob hier jemand diese Funktion schon mal aktiv verwendet hat. Ich war nicht auf der Suche nach Support für Syntax/Quellcodeanalyse. |
infinity hat Folgendes geschrieben: | Immer, wenn ich das
Code: | function menu cdecl (menucount as integer, ...) as string |
mache bekomme ich bei Compile+Run einen Dr.Watson.
Ist i386 W32/SP2, Funktionsparameter sind bis auf die eine integer alles (2x in + out) strings. Wenn ich die selbe Funktion probehalber mit double anstatt string laufen lasse, funktionierts fehlerfrei.
Help?
tom[/code] |
oder besser  _________________ 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 |
|
 |
|