Besoind d'aide avec Builder 6 C++

Fermé
Asmaa_Hasnaa Messages postés 1 Date d'inscription samedi 25 avril 2015 Statut Membre Dernière intervention 25 avril 2015 - 25 avril 2015 à 19:45
mamiemando Messages postés 33073 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 16 avril 2024 - 8 mai 2015 à 16:03
Salut,
Je travaille avec Borland Builde 6 C++ (et je suis débutante) pour effectuer un traitement sur une image, sachant que je travaille avec des images de visages de personnes,
1- lorsque je clique sur ouvrir, l'image se charge sur l'interface,
2- lorsque je fais un MouseUp sur l'image , il me crée un fichier d'extention.txt et il écrit dedans les coordonnées (X,Y) du Pixel concerné,
Tout cela ça fonctioone chez moi , mais ce que je me suis coincée en le faisant , c'est de faire 12 MouseUp sur la même image pour récupérer les 12 Coordonnées (X,Y) dans le même fichier ( veut dire, je veut qu'il crée le fichier pour le 1 point et écrit Point1(X,Y) mais après il continue juste à écrire les 11 Points qui restent et non pas d'écraser les (X,Y) à chaque MouseUp).

Ci-Joint Un bout de mon code:
void __fastcall TForm1::Image1MouseUp(TObject *Sender, TMouseButton Button,TShiftState Shift, int X, int Y)
{
...
int file;
file = FileCreate(OpenPictureDialog1->FileName+".txt");
FileWrite(file,("1:" + IntToStr(X) + " " +
"2:" + IntToStr(Y) ).c_str()
,("1:" + IntToStr(X) + " " +
"2:" + IntToStr(Y) ).Length());
FileWrite(file, "\r\n", 2);
FileClose(file);
}

Meri d'avance pour l'aide, si quelqu'un a une idée comment ça se fait.
A voir également:

1 réponse

mamiemando Messages postés 33073 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 16 avril 2024 7 748
Modifié par mamiemando le 8/05/2015 à 16:04
Je n'ai pas très bien compris ce que tu voulais faire au final, mais dans l'idée tu peux ouvrir un fichier de deux manière :
- en mode write (w) : tu écrases son contenu actuel
- en mode append (a) : tu écris à la suite de son contenu actuel

En C, le mode d'ouverture se gère au moment d'appeler la fonction fopen().
http://www.cplusplus.com/reference/cstdio/fopen/
http://www.decompile.com/cpp/faq/fopen_write_append.htm

En C++ on passe généralement par la classe
std::ofstream
(qui dérive de
std::fstream
), et c'est à la construction de cet objet qu'on passe un flag qui précise comment on écrit dans le fichier.
http://www.cplusplus.com/reference/fstream/ofstream/
http://www.cplusplus.com/reference/fstream/fstream/open/

J'imagine que la fonction FileCreate que tu utilises propose les mêmes possibilités.

Du coup ton problème revient à te demander si tu veux :
- écraser le contenu du fichier (de sorte à garder le dernier point) (w)
- écrire les points les uns à la suite des autre (a)

Bonne chance
0