ATOUTFOX
COMMUNAUTÉ FRANCOPHONE DES PROFESSIONNELS FOXPRO
Visual FoxPro : le développement durable

Forum AtoutFox : Re: Cha=c3=aenes de caract=c3=a8res: Une cha=c3=aene est la suite de la pr=c3=a9c=c3=a9dente =3f   

Sujet

rss Flux RSS des derniers messages

Vous devez vous identifier pour pouvoir poser une question ou répondre.

ven. 08 décembre 2017, 18h38
Jean =c3=a0 Grenoble
atoutfox.public.association

Re: Cha=c3=aenes de caract=c3=a8res: Une cha=c3=aene est la suite de la pr=c3=a9c=c3=a9dente =3f

A mon humble avis, il faut traduire les chaines dans un tableau de 5 valeurs
contenant le code ASCII de chaque caractère. Ce qui facilite les comparaisons.

Le début de solution serait donc (j'ai la flemme de tout écrire !)

toto = "v125ba"
tata = "v125bb"
llsuivant = .F.
DIMENSION dimtoto(5), dimtata(5)
FOR  i = 1 TO 5
  dimtoto(i) = ASC(SUBSTR(toto, i, 1))
  dimtata(i) = ASC(SUBSTR(tata, i, 1))
NEXT && i = 1 TO 5
IF dimtoto(1) = dimtata(1)
  IF dimtoto(2) = dimtata(2)
    IF dimtoto(3) = dimtata(3)
      IF dimtoto(4) = dimtata(4)
        * les 4 premiers caractères sont identiques.
        * Le deuxième n° de série est le suivant du
        * précédent si la différence du code ASCII
        * des derniers caractères est 1
        IF dimtoto(5)+ 1 = dimtata(5)
          llsuivant = .T.
        ENDIF && dimtoto(5) = dimtata(5)
      ELSE && dimtoto(4) = dimtata(4)
        * les 3 premiers caractères sont identiques.
        * Le deuxième n° de série est
        * le suivant du précédent si la
        * différence du code ASCII du quatrième
        * caractère est 1, que le 5éme caractère de toto
        * est 'z' (122) et le 5éme de tata est '0' (48)
        IF dimtoto(4) +1 = dimtata(4) AND dimtoto(5) = 122 ;
         AND dimtata(5) = 48
          llsuivant = .T.
        ENDIF && dimtoto(4) +1 = dimtata(4) AND dimtoto(5) ...
      ENDIF && dimtoto(4) = dimtata(4)
    ELSE && dimtoto(3) = dimtata(3)

    ENDIF && dimtoto(3) = dimtata(3)
  ELSE && dimtoto(2) = dimtata(2)

  ENDIF && dimtoto(2) = dimtata(2)
ELSE && dimtoto(1) = dimtata(1)

ENDIF && dimtoto(1) = dimtata(1)

Permalink : http://www.atoutfox.org/nntp.asp?ID=0000018654
20 088 messages dans le forum • Liste complète des messages

Publicité

Les pubs en cours :

www.atoutfox.org - Site de la Communauté Francophone des Professionnels FoxPro - v3.4.0 - © 2004-2024.
Cette page est générée par un composant COM+ développé en Visual FoxPro 9.0-SP2-HF3