1

Salut à tous

Je suis débutant en C et j'essaie de créer un prog qui ouvre un fichier passer en argument, helas ca ne focntionne pas. Voila le code :

const char *Chemin ;
FILE *Fichier ;

ESI Arguments = top_estack ;
InitArgPtr(Arguments) ;

//Si ce n'est pas un argument de type texte, quitte
if ( GetArgType(Arguments) != STR_TAG )
exit(0) ;
Chemin = GetStrnArg(Arguments) ;
clrscr() ;
printf("%s",Chemin) ;
ngetchx() ;

clrscr() ;

Fichier = fopen(Chemin,"rt") ;

Le chemin s'affiche parfaitement, mais le fichier est vide, aidez moi svp, je vais peter un plomb mur Merci !

@+ Neria

2

tu fé comment pour voir ce qu'il y a dans fichier?
avatar
Wenn ich morgen meinem Gott gegenübertrete, kann ich ihm sagen: "Ich bin unschuldig, ich hab' niemandem etwas getan - außer mir selben" Und das verzeiht er mir offentlich !
Falco - Hans Hölzel 1957 - 1998
RIP

3

Attentio, "rt" ouvre un fichier TEXT (->t) en lecture "r" seule.

4

(et tu peux tester si File==NULL ou pas... comme ça tu sauras au moins si c'est qu'il n'a pas trouvé le fichier ou bien s'il est vraiment vide)

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

5

Salut tous le monde !

En fait je teste si Fichier==Null, mais je pensais que ce n'était pas la peine de mettre ce code ici. Dailleurs c'est à cet endroit que ca plante et qu'il me dit qu'il y a une erreur. En tout cas le fichier il y est c'est sur !

@+ Neria

6

Bah on peut pas t'aider si on a pas le reste du code roll

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

7

Voila le code, mais le reste n'est pas très interessant, c'est pour traîter une image envoyée depuis le PC :

// Main Function
void _main(void)
{
int i, a, Couleur ;
int top, left, height, width ;
int repet ;
const char *Chemin ;
FILE *Fichier ;

ESI Arguments = top_estack ;
InitArgPtr(Arguments) ;

//Si ce n'est pas un argument de type texte, quitte
if ( GetArgType(Arguments) != STR_TAG )
{
ST_showHelp ("Erreur d'argument") ;
ngetchx() ;
return ;
}

Chemin = GetStrnArg(Arguments) ;
clrscr() ;
printf("%s",Chemin) ;
ngetchx() ;

clrscr() ;

//Récupère le chemin de l'image
Fichier = fopen(Chemin,"rt") ;
//S'il y a un prob l'affiche et quitte
if ( Fichier == NULL )
{
clrscr() ;
ST_showHelp ("Fichier introuvable") ;
ngetchx() ;
return ;
}

//Récupère la taille de l'image
top = getc(Fichier) ;
left = getc(Fichier) ;
height = getc(Fichier) ;
width = getc(Fichier) ;

...

Voila tout !

@+Neria

8

Euh, c'est un fichier _texte_ et pourtant les valeurs sont stockées chacune dans un octet? hum

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

9

Salut !

Oui, l'image est stocké sous forme d'octets et à une compression RLE basique : 1 octet pour le nombre de répétitions et 1 octet pour la couleur ( 4 actuellement ). L'ecran est limité à 160 pixels de large donc la un octet ( <= 255 ) pour chacun suffit.
Mais je viens de résoudre le problème : en fait il fallait ne mettre qu'un seul antislash pour le nom de fichier ! Il y a des fois où on se trouve con !

Au fait quelqu'un sait comment utiliser la libraire Gray7Lib sous une Ti89 HW2 ??? J'ai encore beaucoup de problème, mais merci à tous ceux qui m'on répondu !

@+ Neria

10

Tes données sont binaires, donc tu ne dois pas les mettre dans un fichier texte!!!
neria
: Au fait quelqu'un sait comment utiliser la libraire Gray7Lib sous une Ti89 HW2 ??? J'ai encore beaucoup de problème, mais merci à tous ceux qui m'on répondu !

Utilise plutôt ça.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

11

Salut !

Merci beaucoup pour toutes ces infos !!! Ta librairie est géniale !!! Continue comme ca tu fait de l'excellent boulot !

@+ Neria

12

ou si tu tient a utiliser la lib dynamique utile la fonction 7gray de graphlib plustôt que celle de gray7lib.
avatar

13

Salut !

Merci Uther pour le conseil. J'ai déja essayer d'utiliser Gray4Lib, mais il n'y a que ca dans la lib :

gray4lib:embarrassedn equ gray4lib@0000
gray4lib:embarrassedff equ gray4lib@0001
gray4lib:tonguelane0 equ gray4lib@0002
gray4lib:tonguelane1 equ gray4lib@0003

et je ne sais pas comment m'en servir, dsl. En tout cas mon prog fait des merveille avec la lib de Kevin !

14

il ne parlait pas de gray4lib, mais de graphlib ...
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

15

Salut !

Il y a juste des commentaires en plus dans mon fichier Graphlib :
graphlib::memtoscr equ graphlib@000A
;--------------------------------------------------------------
;memtoscr(x,y,lenght,width,handle)
;
;This function copies a handle in memory to screen.
;
;Input: d0.w = X of top left-hand corner in bytes(0<X<30)
; d1.w = Y of top left-hand corner (0<Y<128)
; d2.w = width in bytes (0<d2<30)
; d3.w = height (0<d3<128)
; d4.w = handle previously created by memtoscr(containing the
; part of the screen to restore)
;
;Output:nothing
; NO REGISTERS DESTROYED
;--------------------------------------------------------------

Il ne veut pas compiler quand je l'inclus dans le projet.

@+ Neria

16

tu veux faire quoi avec graphlib ?
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

17

Salut !

Je ne veut rien faire de special avec graphlib si ce n'est avoir acces au mode 7 niveau de gris de ma TI. Le problème c'est que je ne sais pas le faire fonctionner sad

@+ Neria

18

Si tu as une HW2, oublie, les 7 gris sont très instables.

19

Salut !

Oui je sais, déja les 4 ca clignotait pas mal. Je n'ai pas encore fait de test avec les 7 sur ma machine, mais de toute facon c'est juste pour apprendre nà me servir de GraphLib !

@+ Neria

20

Les 8 niveaux de gris sont bien plus stable que les 7 niveaux de gris. smile
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

21

pkoi trifus

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

22

Salut !

J'ai testé les 8 niveaux de gris avec VTI ( et la lib de Kevin ), mais ca clignote pas mal, tandis que c'est nikel avec les 7.

@+ Neria

23

Pourtant les 7 niveaux de gris ont tendance à réaliser des motifs sur l'écran.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

24

Je te conseille de tester également sur une calculette réelle pour tout ce qui est graphique
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

25

Salut !

C'est vraie que en 7 niveaux de gris, ca crée des motifs. Je l'ai passé en 8, mais ca clignote beaucoup, c'est l'inverse sur l'emulateur. Est-ce que ca clignote autant sur HW1 ?

@+ Neria

26

Si je ne me trompe pas, les "motifs" qui apparaissent avec les 7 nvg sont dus au fait que la routine n'attend pas le basculement du FS sur HW2 (ou pas correctement), alors que les autres oui.
Essaye GrayAdjust pour voir. Ca devrait pouvoir diminuer les motifs, mais aussi les augmenter si le réglage est mauvais. Sinon fais GrayAdjust(-28) sur TI89, et monte le contraste. Le clignotement sera atténué (et optionnellement l'écran faiblira moins en cas de tramage horizontal/diagonal).
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

27

La différence de clignotement sur VTI est certainement liée au fait que VTI regroupe les frames par 3 et fait la moyenne (parce qu'en 4 niveaux de gris, la périodicité des alternances de plans est de 3). En 7 niveau de gris, la périodicité est de 6, donc ça ne clignote pas énormément (il y a juste alternance de 2 frames relativement proches), alors qu'en 8 niveaux de gris, elle est de 7, qui est premier avec 3, donc ça clignote bcp plus...

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

28

En même temps, la fréquence de raffraîchissement de la VTI n'est pas vraiment très grande... (20 Hz?)
Sinon GrayAdjust(-28) améliore beaucoup le clignotement, cependant il fait diminuer le temps processeur disponible au programme... (environ 10% il me semble). En plus de ça, le contraste entre les niveaux de gris augmente sensiblement.
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

29

Salut !

J'ai mis GrayAdjust à -28, ca améliore un peu les clignotements. Pour ce qui du temps dispo pour le processeur, ce n'est pas un problème car mon programme ne fait qu'afficher une image et attent qu'on appuie sur un bouton pour quitter. Vous pensez qu'avec un OS on pourrait supprimer les clignotements, ou en utilisant une autre lib par exemple ?

@+ Neria

30

On ne peut pas supprimer les clignotements (sur HW2 en tous cas). tongue
L'écran de la TI affiche environ 90 images par seconde. Un cycle complet pour du 7 niveaux a une alternance de 6 images. 90/6 = 15 cycles/seconde. C'est maigre, ton oeil va inmanquablement le remarquer. Il faudrait être vers les 25 ou plus pour que ça puisse aller dans de bonnes conditions... (càd en tous cas pas avec le soleil qui tape sur ton écran, etc.) sad
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741