Bonjour,
En changeant d'ordinateur j'ai du abandonner Windows 98 pour Windows XP familial. Je viens de télécharger TP 701, mais ne parviens pas à le faire fonctionner.
Un grand merci à celui qui m'indiquera la marche à suivre.
Noël
Bonjour,
En changeant d'ordinateur j'ai du abandonner Windows 98 pour Windows XP familial. Je viens de télécharger TP 701, mais ne parviens pas à le faire fonctionner.
Un grand merci à celui qui m'indiquera la marche à suivre.
Noël
A priori rien ne change pour l'installation sous Xp. Faudrait que tu donnes plus de détails sur les problèmes que tu rencontres...
Pour la cent millième fois, XP famillial n'inclut pas de noyau DOS sur lequel est basé Turbo Pascal, donc tu ne le fera jamais tourner sur XP famillial. Il doit sûrement exister des utilitaires capables d'émuler le DOS mais passe à XP Pro dès que tu peux !!
a+
Heu t'es sur de ce que tu dis la, pasque actuellement j'ai TP 6 qui tourne sur ma machine sous windows XP Home !!!XP famillial n'inclut pas de noyau DOS sur lequel est basé Turbo Pascal, donc tu ne le fera jamais tourner sur XP famillial.
Grand's
Tu essaye de me faire tourner un programme pascal, mellé a de l'asm, exploitant toutes les capatités du Pascal, et on en reparle, Ok ?!Envoyé par grand's
++ Mathieu
oulalala faut pas se facher comme ca, c'est mauvais pour ton karma.
En fait, je voulais dire que je n'avais eut aucun probleme pour installer TP6 sous windowsXP, mais de la a savoir s'il peut tout faire tourner ?????
Faut dire que je suis au stade ou je crée des tableaux, et encore ils marchent pas toujours, et que jusqu'a maintenant tout ce que j'ai fait sous TP est tres basique.
Grand's
Restes ZEN![]()
Jeu meu facheu pas du tout euh !
Bon, j'ai peut-étre un peu répondu de façon agréssive ... Désolé ...
++Mathieu
Ok, mais n'oublies pas, + tu te faches et + c'est mauvais pour ton karma.Jeu meu facheu pas du tout euh !
Bon, j'ai peut-étre un peu répondu de façon agréssive ... Désolé ...
Sinon, peut tu m'expliquer alors la reponse wormful_sickfoot ou s'il peut me l'expliquer lui meme.
Grand's
Euh ben je veux pas me faire gronder mais je fais tourner TP 7 sur XP familial (et oui j'ai XP familialEnvoyé par Pascail
)
Ayé, no problemo (bon d'accord y a pas des tonnes d'asm mais je vais pas en mettre pour le plaisir non plusEnvoyé par Pascail
)
Ca depend ce que t'entends par toutes les capacités du Pascal (writeln et readln ça suffit ?Envoyé par Pascail
)
En espérant ne pas me faire trop gronder
------------
Au coin !
Bonjour,
Un élément de réponse et une question :
1° - La plupart de mes programmes en TP7 fonctionnent parfaitement sous Win XP-Pro, mais,
2° - Je ne parviens plus à ouvrir des répertoires dont les noms dépassent 8 caractères. J'utilise pourtant la bonne (ancienne) syntaxe avec les guillemets.
Par exemple :
var lin:string;
lin:='''\Documents and Settings''';
chdir(lin);
génère l'erreur :
Runtime error 003 at 0000:0050.
La syntaxe a-t-elle changé ?
Je sais que la fenêtre DOS n'est qu'une émulation, mais tout de même.
Qu'en pensez-vous ?
A+
4BIN
Il faut convertir les noms longs en nom 8.3 : "Documents and Settings", ca doit donner quelque chose comme "Docume~1"... Il existe des fonctions qui permettent de gérer les noms longs dans l'interruption 21 ou la 2F (je me souviens plus)
a+
Turbo Pascal est un compilateur datant des années 80. Et dans les années 80, les noms longs, ils connaissaient pas encore (ils sont pas visionnaires sur 15 ans non plus, chez Borland).![]()
Donc, pas de noms longs, il faut rester au format 8.3 (8 caractères pour le nom de fichier en lui-même, plus 3 pour l'extension, pour les incultes). Pour ça, soit tu t'amuses à programmer toi-même les fonctions pour passer des noms longs aux noms courts (au travers de l'int 21h, fonctions 71??h), soit tu utilises des unités toutes prêtes pour ça. Par exemple, l'unité Dos70, de Cristi Streng est très complète dans son genre.
En ce qui concerne Windows XP Home, le problème a été maintes et maintes fois abordé, pour arriver à la conclusion générale suivante : il n'y a pas de cas général !
En effet, certaines personnes arriveront à faire fonctionner TP sans aucun soucis sous cette version d'XP, d'autres n'y parviendront malheureusement jamais.
Il est à peu près établi que de nombreux problèmes se posent avec XP Home pour :
- La gestion des fichiers (Reset, BlockWrite, etc...)
- L'utilisation de la souris
- Les modes graphiques haute résolution (type Vesa)
La liste précédente n'est pas exhaustive.
Sous XP Pro, le fait de passer en mode "compatibilité MS-DOS" permet de passer outre certains de ces problèmes. Ne cherchez pas cette option sous XP Home : elle n'existe pas !
Les différents problèmes quant à l'impossiblité de trouver une unité ("Error 15 : File not found (GRAPH.TPU)" par exemple) ne proviennent pas d'XP ! Corrigez vos chemins d'accès (Options, Directory), c'est un oubli/une erreur d'Hypo lors de la conception du package. Mais n'en jetez plus, on lui a déjà assez tapé sur les doigts pour ça![]()
Autre source de problème : N'installez jamais, et sous aucun prétexte, TP dans un répertoire faisant appel aux noms longs, comme "C:\Turbo Pascal 7". Vous courrez au suicide ! Contentez-vous d'un bon vieux "C:\TP7", par exemple. Ca coûte pas plus cher, et ça marche bien mieux.
En règle générale, Turbo Pascal ne doit jamais avoir à faire face à un nom long. Si vous en croisez un, fuyez !!!![]()
![]()
![]()
![]()
De même, si jamais vous avez fait un passage par Delphi, et que vous avez pris l'habitude de nommer vos unité "MaSuperUnite1" et "MaSuperUnite2", gare aux mauvaises surprises. TP enregistre les unités sous un format 8.3 (ça donne donc pour les deux MASUPERU.PAS, et ça coince, forcément). Mais, dans votre clause "uses", il faut bien inscrire tout le nom de l'unité, pas que les premiers 8 caractères, sinon, attention aux erreurs du type "unit name mismatch".
Bon, je pense avoir fait le tour de pas mal de problèmes ici. S'il s'en pose d'autres, demandez toujours...![]()
A+
on pourrait metre la reponse en post-it sa nous faciliterais bien la vie , vu que le probleme et maintes fois vu et revu !!
Merci pour vos réponses et à charge de revanche,
Cela étant je ne cours pas spécialement après les noms longs, mais si vous voulez installer une icone de votre programme sur le bureau en XP, vous êtes obligés d'en passer par
C:\Documents and Settings\Studio\Bureau
allez savoir pourquoi "Studio" (bref).
J'ai essayé avec "C:\Docume~1" et çà a marché.
Mais l'algorithme de conversion est-il aussi intuitif que l'on peut le supposer :
Par ordre alphabétique sur le septième caractère, si plusieurs répertoires ont des noms similaires ?
Ex : - MonBoulot - Document de travail 01
- Document de travail 02
- Document de travail 03
...
donnerait C:\MonBou~1\Docume~1
C:\MonBou~1\Docume~2
C:\MonBou~1\Docume~3
...
Je sais ce que vous allez dire, c'est complètement stupide de donner des noms de répertoires pareils, mais quand vous faites un programme destiné à des utilisateurs non programmeurs, c'est à ce genre de réalité que vous êtes confrontés. :roll:
A+
4BIN :wink: :wink:
Oui c'est par ordre alphabétique ! Mais on voit déjà les problèmes que ca cause... Il faut connaître tous les répertoires avant de transformer un nom long en nom 8.3...
a+
Non non non et re-non ! C'est n'importe quoi !C'est du même acabi que de jouer à la roulette Russe. Le chiffre intervenant après le tilde (~) est fonction de l'ordre de création du fichier, et si on en supprime, tout peut changer, etc, etc...
Il faut faire appel à l'int 21h pour connaître le nom court correspondant.
Voilà un bout de code opuvant fonctionner :
A+
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 function Convert83(FileName: string): string; var Path: string; Error: Boolean; begin Path := FileName + #0; Move(Path[1], Path[0], Length(Path)); Error := False; asm push ds mov ax, ss mov ds, ax mov ax, 7160h mov cx, 1 lea si, Path les di, FileName int 21h jnc @@1 mov Error, 1 @@1: pop ds end; if not Error then begin Move(FileName[0], FileName[1], 254); FileName[0] := #255; FileName := Copy(FileName, 1, Pos(#0, FileName) - 1); end; Convert83 := FileName; end;
'Scusez moi chef, j'essaierais de plus dire trop de conneries![]()
Merci HDD43 pour ton code en assembleur,
Je te rassure, ni roulette russe ni roulette belge avec les noms de fichiers ou répertoires.
Sachez tout de même qu'aucun manuel (Campus Press, MicroApplication etc.) ne donnent autant d'explications que Hdd34 au sujet des noms longs. Certes, je ne prétend pas les avoir tous consultés.
Bon réveillon à tous !!
A+
Partager