Bonjour
Comment couper un texte à des endroits précis ?
Ex : CuNO3ZnX
je dois obtenir :
Qud une minuscule suit une majuscule je garde la majuscule et la minuscule
- Cu
- N
- O
- 3
- Zn
- X
Bonjour
Comment couper un texte à des endroits précis ?
Ex : CuNO3ZnX
je dois obtenir :
Qud une minuscule suit une majuscule je garde la majuscule et la minuscule
- Cu
- N
- O
- 3
- Zn
- X
Parcours les caracteres pour detecter les index de debut et de fin du morceau a decouper.
Apres, suffit d'utiler les multiples fonctions de traitement de chaines de caracteres : Copy, Delete, Pos, ...
Je n'ai pas delphi ou je suis actuellement pour tester
Mon code est-il correct ?
merci
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 s:=Edit1.text; l:=length(s); temp:='';temp2:='';temp3:=''; for i=0 to l do begin c:=s[i]; if c in ['a'..'z'] then begin z:=copy(s,i,i-1); temp:=temp+z; end else if c in ['A'..'Z'] then begin z:=copy(s,i,i); temp2:=temp2+z; end else begin if c in ['0'..'9'] then begin z:=copy(s,i,i); temp3:=temp3+z; end; end; end
Ta variable i de ton for doit commencer à 1.
L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. :bug: ___ Écrivez dans un français correct !!
C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.3 Entreprise
OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.7)
Bonjour,
Est-il possible de faire un case avec c pour éviter la répétition des if ?
merci
AT
directement non.
Mais il existe uen astuce qui permet de le faire.
Mais dans ton cas ca sera trop complexe a mon avis.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Var List : TStringList; List := TStringList.Create; List.add('toto'); List.add('titi'); List.add('tata'); Case List.IndexOf(s) of 0 : // Toto; 1 : // Titi; 2 : // Tata; End;
bonsoir
ildoit etre possible de faire un case avec c, à condition:à +
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 c: integer; ... ... c := ord(s[i]); case c of 65..91 : // vérifier les chiffres correspondants aux caractères désirés ...
Salut
Dans le cas présent il est plus simple est de travailler avec un Char:
@+ Claudius
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 var C: Char; begin case C of '0'..'9': // ... 'A'..'Z': // ... end; // ... end;
La discussion étant passé en résolu, je n'avais pas posté mon code, mais j'avais fait ceci:
@+ Claudius
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 procedure ParseFormula(F: string; var SL: TStringList); var I, L: Integer; S: ShortString; C: Char; begin L := Length(F); {$C+} Assert(L > 0, 'Chaîne vide'); {$C-} with SL do begin Clear; I := 1; repeat C := F[I]; case C of '0'..'9': S := C; 'A'..'Z': begin S := C; if (I < L) and (F[I+1] in ['a'..'z']) then begin S := S + F[I+1]; Inc(I); end; end; else S := C + ' (?)'; end; Inc(I); SL.Add(S); until (I > L); end; end;
ok merci
car j'avais teste hier soir mon code et c'etait pas encore ça
AT
Partager