salut a tous j'ai juste une petite question je voudrais simplement modifier un champs d'un ligne selectionné dans un fichier texte
salut a tous j'ai juste une petite question je voudrais simplement modifier un champs d'un ligne selectionné dans un fichier texte
Salut,
peut tu nous dire avec quoi tu ouvre ton fichier, dans quoi tu l'affiche, comment tu sélectionne ta ligne ?
N'oublie pas d'être précis pour avoir des réponses
![]()
void TForm1::FMenu()
{
// cette fonction sert à modifier les Menus dont on ne trouve
// qu une seule occurence pour un fichier .txt
TReplaceFlags Flags; // Ici AVEC tout et casse
String E =Memo4->Text;
String N =Memo5->Text;
String S = Memo3->Text;
Flags >>rfReplaceAll>>rfIgnoreCase; // Remplace exactement
Memo6->Text = StringReplace(S, E, N, Flags);
Memo6->Lines->SaveToFile(chemin);
}
tiens voilà une fonction qui remplace une occurence , çà fait partie d un petit programme que j avais commencé , à toi de l utiliser comme il faut
voici ce que j'ai pu faire pour avoir deja mais information
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65 //Declaration de variable int i,val1=-1; AnsiString ligne3,ligne4,application,rechercher,login,password; TStringList *file = new TStringList() ; TStringList *li = new TStringList() ; //Enregistrement de l'application dans la variable application=Edit1->Text; //Lecture du fichier file->LoadFromFile("C:\\Documents and Settings\\30.09.07\\Mes documents\\fichier.txt"); for( i=0; i< file->Count; i++) { //Lecture de chaque ligne rechercher = file->Strings[i]; //Teste sur chaque ligne la valeur application if(rechercher.Pos(application)) { //Enregistre la valeur dans val1 val1=i; } } //Recuperation de ligne selectionner if(val1 != -1) { ligne3 = file->Strings[val1] ; ligne4 = ""; while(ligne3.Pos(",") != 0) { ligne4 += "\""; ligne4 += ligne3.SubString(1,ligne3.Pos(",")-1); ligne3.Delete(1,ligne3.Pos(",")); ligne4 += "\","; } if(ligne3.Length() != 0) { ligne4 += "\""; ligne4 += ligne3; ligne4 += "\""; } //Decoupage de la ligne a chaque virgule li->Delimiter = ',' ; li->DelimitedText = ligne4 ; //Enregistrement du champs dans le login login=li->Strings[1]; //Enregistrement du champs dans password password=li->Strings[2]; //Affichage du login Edit2->Text=login; //Affichage du password Edit3->Text=password; Edit2->Visible=true; Edit3->Visible=true; Label2->Visible=true; Label3->Visible=true; } delete li;
C'est bien, mais quel champs veut tu modifier, et tu veut le remplacer par quoi ?
ben par exemple le champs password pour changer le mot de passe car sa peut arriver de changer de mot de passe !!!![]()
Ok, dans ce cas, on va reprendre le code de lecture, et au lieu de mettre les infos dans les TEdit, on les prend des TEdit pour les mettres dans le fichier puis le sauver :
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64 //Declaration de variable int i,val1=-1; AnsiString ligne3,ligne4,application,rechercher,login,password; TStringList *file = new TStringList() ; TStringList *li = new TStringList() ; //Enregistrement de l'application dans la variable application=Edit1->Text; //Lecture du fichier file->LoadFromFile("C:\\Documents and Settings\\30.09.07\\Mes documents\\fichier.txt"); for( i=0; i< file->Count; i++) { //Lecture de chaque ligne rechercher = file->Strings[i]; //Teste sur chaque ligne la valeur application if(rechercher.Pos(application)) { //Enregistre la valeur dans val1 val1=i; } } //Recuperation de ligne selectionner if(val1 != -1) { ligne3 = file->Strings[val1] ; ligne4 = ""; while(ligne3.Pos(",") != 0) { ligne4 += "\""; ligne4 += ligne3.SubString(1,ligne3.Pos(",")-1); ligne3.Delete(1,ligne3.Pos(",")); ligne4 += "\","; } if(ligne3.Length() != 0) { ligne4 += "\""; ligne4 += ligne3; ligne4 += "\""; } //Decoupage de la ligne a chaque virgule li->Delimiter = ',' ; li->DelimitedText = ligne4 ; //Enregistrement du champs dans le login li->Strings[1]=Edit2->Text; //Enregistrement du champs dans password li->Strings[2]=Edit3->Text; ligne4 = li->DelimitedText;//je suis pas sur pour cette ligne file->Strings[val1] = ligne4; //Lecture du fichier file->SaveToFile("C:\\Documents and Settings\\30.09.07\\Mes documents\\fichier.txt"); Edit2->Visible=false; Edit3->Visible=false; Label2->Visible=false; Label3->Visible=false; } delete li;
Merci sa marche niquel bonne journée
Partager