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.
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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager