aldweb

Fermer I. aldweb

Fermer II. Gratuitiels PC

Fermer III. Gratuitiels Palm

Fermer IV. Partagiciels Palm

Fermer V. iziBasic Palm

Fermer VI. Connaissance Palm

Fermer VII. Ordinateur Poche

Fermer VIII. miniPortail

Spécial !



Version mobile
de l'aldweb Site

m.aldweb.com


Ni Français, ni Anglais ?

Essayez donc l'un de ces drapeaux :
[de] [es] [it] [pt]
Recherche




Météo / Spam / www

Météo Lyon


aldweb contre le SPAM


Newsletter
Pour avoir des nouvelles de ce site, inscrivez-vous à notre Newsletter.
S'abonner
Se désabonner
298 Abonnés
Sites web de la famille

Webmaster - Infos
News Amis
Visites

   visiteurs

   visiteurs en ligne

Sondage
Comment trouve-tu le nouvel habillage de l'aldweb Site ?
 
Superbe !
Joli
Moyen
Moche...
Résultats
forum.gifForum - iziBasic - Sujet n°1158

Forum - Forum
iziBasic - iziBasic


Warning: A non-numeric value encountered in /web5/aldweb/www/aldweb_com/www/thread.php on line 257

actif  Sujet n° 1158  Lecture au dela du CHR$(0)

le 10/03/2005 @ 12:31
par Khertan

Anonyme



Salut ...

Bon j'essaye avec une applet PP de lire au dela du CHR$­­(0) ... en accedant direct a l'index voulu ... mais etant pas tres doué en pascal ... j'ai a chaque fois une erreur fatal ... mais je ne sais ou ...

L'applet est appelé de cette maniere :
Ecrire à Khertan   Poster une réponse  Haut

[]   

DébutPrécédent [ 1 2 ] SuivantFin

Warning: A non-numeric value encountered in /web5/aldweb/www/aldweb_com/www/thread.php on line 497
Réponse n° 1
--------
le 10/03/2005 @ 12:32
par Khertan

Anonyme

visiteur
Bon j'arrive pas a poster mon code ... j'ai une parse erreur sur le forum a la ligne 13 ... unexpected variable ...
Ecrire à Khertan   Poster une réponse  Haut

Warning: A non-numeric value encountered in /web5/aldweb/www/aldweb_com/www/thread.php on line 497
Réponse n° 2
--------
le 10/03/2005 @ 12:33
par Khertan

Anonyme

visiteur

L'applet est appelé de cette maniere :

A$­­=CALLPP(100,"MultiMail Message")

Ecrire à Khertan   Poster une réponse  Haut

Warning: A non-numeric value encountered in /web5/aldweb/www/aldweb_com/www/thread.php on line 497
Réponse n° 3
--------
le 10/03/2005 @ 12:34
par Khertan

Anonyme

visiteur
et le code de l'applet :

$­­code appl,Kh13,code,100
program PPTest;
$­­i PalmAPI.pas
type iBasFunType=function(S:string):string;
var iBasCallPP:iBasFunType;
var Event:EventType;

function CallPP(S:string):string;

type
kMegaString=array[0..4095] of char;
kMegaStringPtr=^kMegaString;

var
f:UInt16;
databas:DmOpenRef;
krecord:MemHandle;
zechar:char;
kZeMegaString:kMegaString;
kZeMegaStringPtr:kMegaStringPtr;


begin

f:=DmFindDatabase(0,S);
databas:=DmOpenDatabase(0,f,dmModeReadWrite);
krecord:=DmGetRecord(databas,1);

kZeMegaStringPtr:=MemHandleLock(krecord);
kZeMegaString:=kZeMegaStringPtr^;
zec har:=kZeMegaString[5];

MemHandleUnlock(krecord);
DmReleaseRecord(databas,1,false);

CallPP:=zechar;
end;

begin

iBasCallPP:=CallPP;
end.

Si quelqu'un voit pourquoi ... merci ...
Ecrire à Khertan   Poster une réponse  Haut

Warning: A non-numeric value encountered in /web5/aldweb/www/aldweb_com/www/thread.php on line 497
Réponse n° 4
--------
le 10/03/2005 @ 12:34
par Khertan

Anonyme

visiteur
bien sur il y a des

{ et des }

que ton forum n'accepte pas apperement :)
Ecrire à Khertan   Poster une réponse  Haut

Warning: A non-numeric value encountered in /web5/aldweb/www/aldweb_com/www/thread.php on line 497
Réponse n° 5
--------
le 11/03/2005 @ 00:00
par aldweb

Anonyme

visiteur
A première vue, ton code semble tout à fait correct.
Sauf qu'il semble bien y manquer un petit DmCloseDatabase à la fin...

T'as vu ? C'est quand-même nettement plus compliqué à coder qu'en iziBasic, non ?

Sinon, oui, les parenthèses ont du mal à passer ici...

@+
aldweb
Ecrire à aldweb   Poster une réponse  Haut

Warning: A non-numeric value encountered in /web5/aldweb/www/aldweb_com/www/thread.php on line 497
Réponse n° 6
--------
le 11/03/2005 @ 09:43
par Khertan

Anonyme

visiteur
Oui mon code semblait correct ... sauf que apres avoir chercher pas mal ... j'ai trouvé ou etait mon erreur ... c'est le local ID ... ou ca chiait ...

Et oui c'est un UInt32 et non un UInt16 ... boum :)

Bon sinon j'arrive a lire proprement maintenant mais lorsque je quitte iziBasic j'ai une fatale exception ...

Oui bah tu sais j'aime bien iziBasic pour ca simplicité ... c'est presque un RAD ... :) et puis comme tout RAD ... pour un truc un peu plus complexe tu code un plug in ... soit un applet PP pour iziBasic ...

Enfin bref ... je commence a aimer de codé des petit applets pour iziBasic ... :) ... Mais c'est seulement pour completer iziBasic ... :)

Sinon voici le code ... me reste a mettre un parseur pour la string S passé afin de pouvoir mettre plusieur arguments dedans comme l'index du record, la position du caractere dans le record et le nom de la base ...

($­­code appl,Kh13,code,100)
program PPTest;
($­­i PalmAPI.pas)
type iBasFunType=function(S:string):string;
var iBasCallPP:iBasFunType;
var Event:EventType;

function CallPP(S:string):string;

type
kMegaString=array[0..4095] of char;
kMegaStringPtr=^kMegaString;

var
f:LocalID;
index:UInt16;
pos:UInt16;
ref:DmOpenRef;
krecord:MemHandle;
zechar:char;
kZeMegaString:kMegaString;
kZeMegaStringPtr:kMegaStringPtr;
begin

f:=DmFindDatabase(0,'MultiMail Messages');
ref:=DmOpenDatabase(0,f,dmModeReadOnly);

index:=0;
pos:=4;

krecord:=DmGetRecord(ref,index);
kZeMegaStringPtr:=MemHandleLock(krecord);

CallPP:='0';

if kZeMegaStringPtr<>nil then
begin
kZeMegaString:=kZeMegaStringPtr^;
zechar:=kZeMegaString[4];
CallPP:=zechar;
end;

MemHandleUnlock(krecord);
DmReleaseRecord(ref,1,false);
DmCloseDatabase(ref);


end;

begin
iBasCallPP:=CallPP;
end.
Ecrire à Khertan   Poster une réponse  Haut

Warning: A non-numeric value encountered in /web5/aldweb/www/aldweb_com/www/thread.php on line 497
Réponse n° 6
--------
le 11/03/2005 @ 09:43
par Khertan

Anonyme

visiteur
Oui mon code semblait correct ... sauf que apres avoir chercher pas mal ... j'ai trouvé ou etait mon erreur ... c'est le local ID ... ou ca chiait ...

Et oui c'est un UInt32 et non un UInt16 ... boum :)

Bon sinon j'arrive a lire proprement maintenant mais lorsque je quitte iziBasic j'ai une fatale exception ...

Oui bah tu sais j'aime bien iziBasic pour ca simplicité ... c'est presque un RAD ... :) et puis comme tout RAD ... pour un truc un peu plus complexe tu code un plug in ... soit un applet PP pour iziBasic ...

Enfin bref ... je commence a aimer de codé des petit applets pour iziBasic ... :) ... Mais c'est seulement pour completer iziBasic ... :)

Sinon voici le code ... me reste a mettre un parseur pour la string S passé afin de pouvoir mettre plusieur arguments dedans comme l'index du record, la position du caractere dans le record et le nom de la base ...

$­­code appl,Kh13,code,100
program PPTest;
$­­i PalmAPI.pas
type iBasFunType=function(S:string):string;
var iBasCallPP:iBasFunType;
var Event:EventType;

function CallPP(S:string):string;

type
kMegaString=array[0..4095] of char;
kMegaStringPtr=^kMegaString;

var
f:LocalID;
index:UInt16;
pos:UInt16;
ref:DmOpenRef;
krecord:MemHandle;
zechar:char;
kZeMegaString:kMegaString;
kZeMegaStringPtr:kMegaStringPtr;
begin

f:=DmFindDatabase(0,'MultiMail Messages');
ref:=DmOpenDatabase(0,f,dmModeReadOnly);

index:=0;
pos:=4;

krecord:=DmGetRecord(ref,index);
kZeMegaStringPtr:=MemHandleLock(krecord);

CallPP:='0';

if kZeMegaStringPtr<>nil then
begin
kZeMegaString:=kZeMegaStringPtr^;
zechar:=kZeMegaString[4];
CallPP:=zechar;
end;

MemHandleUnlock(krecord);
DmReleaseRecord(ref,1,false);
DmCloseDatabase(ref);


end;

begin
iBasCallPP:=CallPP;
end.
Ecrire à Khertan   Poster une réponse  Haut

Warning: A non-numeric value encountered in /web5/aldweb/www/aldweb_com/www/thread.php on line 497
Réponse n° 7
--------
le 11/03/2005 @ 20:57
par Khertan

Anonyme

visiteur
Le gentil createur de PP, Philippe Guillot à trouvé pourquoi ...

Un depassement de pile sur le zeMegaString[0..4095] ...

Maintenant reste a savoir comment faire ...
Ecrire à Khertan   Poster une réponse  Haut

Warning: A non-numeric value encountered in /web5/aldweb/www/aldweb_com/www/thread.php on line 497
Réponse n° 9
--------
le 13/03/2005 @ 18:49
par aldweb

Anonyme

visiteur
Ah oui, ça aurait du me sauter aux yeux aussi.

Ton zeMegaString de 4 Ko est déclaré en variable locale et on a moins que ça dans un module.

Pour les besoins de tes tests, diminue-le sous une barre de 512 octets ou 1 Ko.

Après, je pourrai voir pour donner accès à mon propre tableau de MegaString que j'utilise dans iziBasic en variable globale, et qui est déclaré exactement comme le tien.
Ca m'imposera un petit réarangement de la mémoire et une recompilation complète, pour une version 5.0 spéciale Khertan ou une version 5.1



@+
aldweb
Ecrire à aldweb   Poster une réponse  Haut

Warning: A non-numeric value encountered in /web5/aldweb/www/aldweb_com/www/thread.php on line 497
Réponse n° 10
--------
le 13/03/2005 @ 19:45
par Khertan

Anonyme

visiteur
Lol ... te prends pas la tête ... 4Ko ... pour lire une char ... :)

hum on a deja vu vieux niveau optimisation ... :)

:)

Non je suis en train d'essayer de faire du parsing pour passer trois arguments depuis iziBasic ... mais je galere avec ca :)
Ecrire à Khertan   Poster une réponse  Haut
DébutPrécédent [ 1 2 ] SuivantFin
actif sujet actif   clos sujet clos   Important! Important!   Nouveau Nouveau message   -   Rectifier Rectifier message   Clôturer Clôturer sujet   Remonter Remonter
[]
Catégories de discussion  Forum 



 
^ Haut ^