Accueil > Forum > > > > Problemes fichier ini
Problemes fichier ini
dimanche 4 mai 2008 à 00:01:48 |
Problemes fichier ini

elt93
|
Bonjour, Je rencontre un probleme dans mon code que je n'arrive pas à résoudre, lors de l'écriture d'un fichier ini, j'ai un message d'ereur me disant que je fais une "violation d'accés à l'adresse ....... dans le module .....", voici le code : var f : Tinifile; pni: string; po: string; nii: string; nff: string; n11: string; n22: string; calc: string; calc2: string; calc3: string; begin if not DirectoryExists('c:\Program Files\Elcalculator\save\') then CreateDir('c:\Program Files\Elcalculator\save\') ; pni:= nini.Text; po:= p.Text; nii:= ni.Text; nff:= nf.Text; n11:= n1.Text; n22:= n2.Text; calc:= cone.Text; calc3:= c3.Text; f.Create('c:\Program Files\Elcalculator\save\'+Edit1.Text+'.ini'); f.WriteString('pni', 'pni', pni); f.WriteString('po', 'po', po); f.WriteString('nii', 'nii', nii); f.WriteString('nff', 'nff', nff); f.WriteString('n11', 'n11', n11); f.WriteString('n22', 'n22', n22); f.WriteString('calc', 'calc', calc); f.WriteString('calc2', 'calc2', calc2); f.WriteString('calc3', 'calc3', calc3); f.Free; panel5.Hide;
end; Merci d'avance pour votre aide
|
|
dimanche 4 mai 2008 à 01:05:15 |
Re : Problemes fichier ini

ni69
|
Coucou, Pour la prochaine fois, merci de préciser sur quelle ligne pointe le debugger lorsque tu rencontres une erreur ! .bmp) Au lieu de : f.Create('c:\Program Files\Elcalculator\save\'+Edit1.Text+'.ini');
Mets plutôt : FichierIni:= TIniFile.Create('"c:\Program Files\Elcalculator\save\'+Edit1.Text+'.ini"');Conseil : Evite de coder en dur les chemins d'accès comme 'C:\Program Files\', il vaut mieux les retrouver à partir des paramètres systèmes (voir de nombreux posts sur ce site qui parlent de cela). Un autre conseil : vérifie quelque-part que Edit1.Text contient un nom de fichier valide, ou bien encadre ce code d'un gestionnaire d'exception (try ... except ... end)... On est jamais trop prudent ! @+ Nico { [ Lien ] }
|
|
dimanche 4 mai 2008 à 01:15:38 |
Re : Problemes fichier ini

f0xi
|
var path : string; begin path := EctractFilePath(ParamStr(0))+'save\'; if not DirectoryExists(Path) then CreateDir(Path);
with TIniFile.Create(Path+Edit1.Text+'.ini') do try WriteString('pni', 'pni', nini.Text); WriteString('po', 'po', p.Text); WriteString('nii', 'nii', ni.Text); WriteString('nff', 'nff', nf.Text); WriteString('n11', 'n11', n1.Text); WriteString('n22', 'n22', n2.Text); WriteString('calc', 'calc', calc); WriteString('calc2', 'calc2', cone.Text); WriteString('calc3', 'calc3', c3.Text); finally Free; end;
panel5.Hide; end;
|
|
dimanche 4 mai 2008 à 01:25:57 |
Re : Problemes fichier ini

ni69
|
Instruction à privilégier à CreateDir : ForceDirectories( Dir: string );
qui à l'avantage de créer l'arborescence manquante complète, contrairement à CreateDir qui ne crée que le répertoire de plus haut niveau. Par exemple, si "C:\Dossier1" n'existe pas, CreateDir n'aura aucun effet et renverra une erreur, alors que ForceDirectories effectuera l'action escomptée : CreateDir( 'C:\Dossier1\Dossier2' ); // Erreur ForceDirectories( 'C:\Dossier1\Dossier2' ); // Tout marche bien !@+ Nico { [ Lien ] }
|
|
dimanche 4 mai 2008 à 10:51:41 |
Re : Problemes fichier ini

elt93
|
Merci beaucoup pour votre aide, J'ai fait ce que vous m'avez dit et maintenant mon code est comme ceci (j'ai mis le forcedirectories dans Form.Create) : with TIniFile.Create('"C:\Program Files\Elcalculator\save\'+Edit1.Text+'.ini"') do try WriteString('pni', 'pni', pni); WriteString('po', 'po', po); WriteString('nii', 'nii', nii); WriteString('nff', 'nff', nff); WriteString('n11', 'n11', n11); WriteString('n22', 'n22', n22); WriteString('calc', 'calc', calc); WriteString('calc2', 'calc2', calc2); WriteString('calc3', 'calc3', calc3); Free; panel5.Hide; except ShowMessage('Impossible de sauver, verifiez la validité du nom de fichier') ; f.Free; panel5.Hide; end;
end;
Mais maintenant le message d'erreur est "impossible d'ecrire dans "C:\Program Files\Elcalculator\save\'+Edit1.Text+'.ini" et le debogueur me surligne la ligne : WriteString('po', 'po', po); Merci encore pour votre aide.
|
|
dimanche 4 mai 2008 à 11:52:35 |
Re : Problemes fichier ini

ni69
|
Réponse acceptée !
Si le debugger te surligne la ligne WriteString('po', 'po', po);c'est que le problème vient en fait de la ligne du dessus, c'est à dire la première d'opération d'écriture : WriteString('pni', 'pni', pni);Il ne faut pas mettre de " " dans le nom du fichier, c'est une erreur de ma part désolé. Attention, ne met jamais deux free sur le même objet qui risquent de s'exécuter successivement, car c'est violation d'accès assurée en cas d'erreur sur le code qui suit le premier (ici par exemple si panel5.Hide; renvoie une erreur - oui c'est possible ! Il suffit d'une mauvaise organisation de fenêtres modales ou autres bizarreries...). Même si ce cas d'erreur semble ici très rare, cela dépend totaement du code suivant le premier free, il vaut donc mieux être prudent et prendre l'habitude d'imbriquer les deux blocs try...except et try...finally with TIniFile.Create( ExtractFilePath(Application.ExeName) + 'save\' + Edit1.Text + '.ini') do try try WriteString('pni', 'pni', pni); WriteString('po', 'po', po); WriteString('nii', 'nii', nii); WriteString('nff', 'nff', nff); WriteString('n11', 'n11', n11); WriteString('n22', 'n22', n22); WriteString('calc', 'calc', calc); WriteString('calc2', 'calc2', calc2); WriteString('calc3', 'calc3', calc3); except ShowMessage('Impossible de sauver, verifiez la validité du nom de fichier'); end; finally Free; end;@+ Nico { [ Lien ] }
|
|
dimanche 4 mai 2008 à 12:01:57 |
Re : Problemes fichier ini

cirec
|
Réponse acceptée !
reprend le code de F0xi au lieu de passer par des variables inutiles:
with TIniFile.Create(Path+Edit1.Text+'.ini') do try WriteString('pni', 'pni', nini.Text); WriteString('po', 'po', p.Text); WriteString('nii', 'nii', ni.Text); WriteString('nff', 'nff', nf.Text); WriteString('n11', 'n11', n1.Text); WriteString('n22', 'n22', n2.Text); WriteString('calc', 'calc', calc); WriteString('calc2', 'calc2', cone.Text); WriteString('calc3', 'calc3', c3.Text); finally Free; end;
@+ Cirec
|
|
dimanche 4 mai 2008 à 12:40:11 |
Re : Problemes fichier ini

elt93
|
Ok merci beaucoup à tous !
|
|
Cette discussion est classée dans : text, string, po, writestring, pni
Répondre à ce message
Sujets en rapport avec ce message
Probleme pour la creation d'un fichier ini [ par ewertheimer ]
Bonjour, Je suis sur un projet ou je repertorie des donnees dans un fichiers ini. Voici mon code : procedure TForm1.Button1Click(Sender: TObject);
Appel de procedure [ par Clercq ]
Bonjour à vous,J'ai petit probleme en Delphi, en effet je suis legerement neophyte dans ce language :p.Mon probleme est le suivant, j'ai créé une proc
idHTTP... Question technique [ par ELCouz ]
Bonjour c'est encore moi :P !! (eh oui),,,Jaurais besoin daide sur la composante idHTTP de Indy (jutilise la v10).Bon je vous met dans le contexte.Je
string de plus de 255 caracteres?:( [ par aliong ]
Bonjour!comme vous le remarkerer je suis newbies donc ne m'en voulez po pour cette kestion ki va etre pour la plupart d'entre vous de la rigolade alor
Recupérer le code ASCII de chaque caractere d'une string [ par CyberTwister ]
Bonjour :Dj'ai une phrase dans un Edit.text.Je voudrais faire une boucle pour lister ttes les lettres et faire une action suivant leur caractere ANSII
conversion en String un ensemble Set [ par gabs77 ]
salut, j'ai un souci sur une parti de ma prog, j'ai effectué un test de caractère non autorisé (qui fonctionne très bien !) mais je n'arrive pas à f
pb requete ??? [ par gabs77 ]
salut, je fais une application qui jusqu'à maintenant fonctionnait à merveille mais malheureusement un problème d'exécution SQL a eu lieu qui est le s
Question Keylogger [ par Hardouz ]
salut j'utilise ce code pour recupérer les frappe du clavier et le prbléme c'est que si j'appuis sur n'importe quel touche (exemple 'A')le Tedit1.text
probleme de lecture [ par darkthief ]
Bonjour à tous,voila, je débute en delphi et je suis en train de faire quelque tests de prog.version de delphi utilisée : Delphi 7 personnal edition.j
Comment lié deux logique dans sur seul Tbutton [ par jennybless ]
Salut tout le monde!C'est juste une question de curiosité que je pose cette question car je n'arrive pas à dissocier les deux modules que je tiens à f
Livres en rapport
|
Derniers Blogs
[WF4] PASSAGE D'ARGUMENTS LITERAL, VISUALBASICVALUE OU LAMBDAVALUE?[WF4] PASSAGE D'ARGUMENTS LITERAL, VISUALBASICVALUE OU LAMBDAVALUE? par JeremyJeanson
Avec la sortie de la RC de Visual Studio 2010, Microsoft a mis un peu les points sur leS i en ce qui concernait le passage d'arguments. Mais nous somme un certain nombre à avoir pris ce changement comme un coup dur. Pour résumer la situation : à la sortie...
Cliquez pour lire la suite de l'article par JeremyJeanson [RIA SERVICES] INCLUDE ET DOMAINDATASOURCE[RIA SERVICES] INCLUDE ET DOMAINDATASOURCE par Audrey
Dans un de mes articles précédents , j'avais parlé des DomainDataSource avec RIA Services dans le cas d'une interface Maître - Détail. Dans le même principe, je vais parler d'une autre manière de mettre en forme ce cas d'interface avec RIA Services. Et po...
Cliquez pour lire la suite de l'article par Audrey ZUNE : VERSION ZUNE SOFTWARE V 4.2 ET LA SOCIALISATIONZUNE : VERSION ZUNE SOFTWARE V 4.2 ET LA SOCIALISATION par ROMELARD Fabrice
Une des nouveautés de la version V 3.0 était l'apparition de l'onglet Social qui ne fonctionnait que si le MarketPlace était activé sur son poste. Cela limitait donc son intérêt, car hors du cadre commercial USA-CANADA, peu de monde trouva...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice PRATIQUE DE SILVERLIGHT PAR ERIC AMBROSIPRATIQUE DE SILVERLIGHT PAR ERIC AMBROSI par MPOWARE
Je viens de finir la lecture du dernier livre d'
Eric Ambrosi
éditions PEARSON
Son livre donne une approche pratique de Silverlight qui sera aussi bien comprise par le développeur que par le designeur.
Tous les aspects du développement RIA sont abor...
Cliquez pour lire la suite de l'article par MPOWARE APPRENDRE à DéVELOPPER POUR LES MOBILES AVEC LA NOUVELLE GéNéRATION .NETAPPRENDRE à DéVELOPPER POUR LES MOBILES AVEC LA NOUVELLE GéNéRATION .NET par odewit
2 déclinaisons de Silverlight et 2 déclinaisons de Mono permettent dorénavant (ou permettront prochainement) de développer des applications .NET mobiles pour les principales plates-formes du marché :
Silverlight pour Symbian, basé sur Silverlight 2...
Cliquez pour lire la suite de l'article par odewit
Forum
RE : DELPHIRE : DELPHI par overtaker
Cliquez pour lire la suite par overtaker
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|