Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Convert VFP class to C# class Help (Arrays)
Message
De
14/01/2009 15:34:24
 
 
À
Tous
Information générale
Forum:
ASP.NET
Catégorie:
Code, syntaxe and commandes
Titre:
Convert VFP class to C# class Help (Arrays)
Versions des environnements
Environment:
C# 3.0
OS:
Windows XP
Network:
Windows 2003 Server
Database:
MS SQL Server
Application:
Desktop
Divers
Thread ID:
01373708
Message ID:
01373708
Vues:
74
I'm having a hard time rewriting this into c#. Arrays in .net are much more difficult than in Foxpro. Can anyone help me get started?

The parameter passed would be something similar to: "XYZ222, SC, 2007, 120 MAIN ST"
In that example, XYZ222 would be this.vl, SC would be this.vlstate, and 2007 should go into this.vlYear and the rest should go into this.location.
DEFINE CLASS parseclass AS custom
 
 
       Name = "parseclass"
 
 
       PROCEDURE parse
              LPARAMETERS tcText
              LOCAL ix
              LOCAL ARRAY aWork[1]
              lnLines = ALINES(aWork,m.tcText)
              THIS.ADDPROPERTY('aWorked['+TRANSFORM(m.lnLines)+']')
 
              palias = ALIAS()
              CREATE CURSOR _dummy_ (ID I,vl I,vlState I,vlYEar I,Location I,Comments I)
              FOR ix=1 TO ALINES(aWork,m.tcText)
                     SCATTER NAME THIS.aWorked[m.ix] BLANK
                     IF TYPE('aWork(m.ix)') = "C"
                           THIS.aWorked[m.ix].ID = ALLTRIM(aWork[m.ix])
                     ELSE
                           THIS.aWorked(m.ix).ID = ''
                     ENDIF
                     THIS.ProcessLine(aWork[m.ix],m.ix)
              ENDFOR
              USE IN _dummy_
              IF !EMPTY(palias) .AND. USED(palias)
                     SELECT (palias)
              ENDIF
       ENDPROC
 
 
       PROCEDURE processline
              LPARAMETERS tcLine, tnObjectID
              LOCAL lcParsePhrase,lnWords,ix
              IF TYPE('tcLine') = "C"
                     m.lcParsePhrase = UPPER(ALLTRIM(tcLine))
              ELSE
                     m.lcParsePhrase = ''
              ENDIF
              lnWords = GETWORDCOUNT( m.lcParsePhrase,',' )
              LOCAL ARRAY aWorkings[Max(m.lnWords,5)]
              aWorkings = ''
              FOR ix=1 TO m.lnWords
                     aWorkings[m.ix] = ALLTRIM(GETWORDNUM( m.lcParsePhrase,m.ix,',' ))
              ENDFOR
              THIS.parseItems(@aWorkings,m.tnObjectID)
       ENDPROC
 
 
       PROCEDURE parseitems
              LPARAMETERS taValues, tnObjectID
 
              WITH THIS.aWorked[m.tnObjectID]
                     .vlYEar = THIS.GetYear(@taValues)
                     .vlState = THIS.GetState(@taValues)
                     .Location = THIS.GetLocation(@taValues)
                     .vl = THIS.GetLicenseTag(@taValues)
                     .Comments = THIS.GetComments(@taValues)
              ENDWITH
       ENDPROC
 
 
       PROCEDURE getyear
              LPARAMETERS taValues
              LOCAL ix,lnYear
              IF TYPE('alen(taValues,1)') = "N" .and. ALEN(taValues,1) > 0
                     FOR ix=1 TO ALEN(taValues,1)
                           IF THIS.IsYear(taValues[m.ix])
                                  lnYear = YEAR(CTOD('1/1/'+taValues[m.ix]))
                                  ADEL(taValues,m.ix)
                                  IF Alen[taValues] > 1 
                                         DIMENSION taValues[Alen(taValues)-1]
                                  ENDIF
                                  lcYear = ALLTRIM(STR(m.lnYear))
                                  RETURN m.lcYear
                           ENDIF
                     ENDFOR
              ENDIF
              RETURN 0
       ENDPROC
 
 
       PROCEDURE getstate
              LPARAMETERS taValues
 
              LOCAL ix,lcState
              m.lcState = ''
 
              IF TYPE('alen(taValues,1)') = "N" .and. ALEN(taValues,1) > 0
                     FOR ix=1 TO ALEN(taValues,1)
                     IF TYPE('taValues[m.ix]') = "C"
                           taValues[m.ix]=ALLTRIM(UPPER(taValues[m.ix]))
                           IF LEN(taValues[m.ix]) = 2 .AND. VAL(taValues[m.ix]) = 0 .AND. Statever(taValues[m.ix])
                                  lcState = taValues[m.ix]
                                  ADEL(taValues,m.ix)
                                  IF Alen[taValues] > 1 
                                         DIMENSION taValues[Alen(taValues)-1]
                                  ENDIF
                           ENDIF
                     ENDIF
                     ENDFOR
              ENDIF
              RETURN m.lcState
       ENDPROC
 
 
       PROCEDURE getlocation
              LPARAMETERS taValues
              LOCAL ix,lcLocation
 
              IF TYPE('alen(taValues,1)') = "N" .and. ALEN(taValues,1) > 0
                     FOR ix=1 TO ALEN(taValues,1)
                           IF TYPE('taValues[m.ix]') = "C"
                                  IF ( ISDIGIT(LEFT(taValues[m.ix],1)) AND OCCURS(' ', taValues[m.ix]) > 0 ) OR ;
                                         ( '/' $ taValues[m.ix] ) OR ( '\' $ taValues[m.ix] )
                                         lcLocation = taValues[m.ix]
                                         ADEL(taValues,m.ix)
                                         IF Alen[taValues] > 1 
                                                DIMENSION taValues[Alen(taValues)-1]
                                         ENDIF
                                         RETURN m.lcLocation
                                  ENDIF
                           ENDIF
                     ENDFOR
              ENDIF
              RETURN ''
       ENDPROC
 
 
       PROCEDURE getlicensetag
              LPARAMETERS taValues
 
              LOCAL ix,lcTag
              IF TYPE('alen(taValues,1)') = "N" .and. ALEN(taValues,1) > 0
                     FOR ix=1 TO ALEN(taValues,1)
                           IF ( OCCURS(' ', taValues[m.ix]) = 0 )
                                  lcTag = taValues[m.ix]
                                  ADEL(taValues,m.ix)
                                  IF Alen[taValues] > 1 
                                         DIMENSION taValues[Alen(taValues)-1]
                                  ENDIF
                                  RETURN m.lcTag
                           ENDIF
                     ENDFOR
              ENDIF
              RETURN ''
       ENDPROC
 
 
       PROCEDURE getcomments
              LPARAMETERS taValues
 
              LOCAL ix,lcComments
              lcComments = ''
              IF TYPE('alen(taValues,1)') = "N" .and. ALEN(taValues,1) > 0
                     FOR ix=1 TO ALEN(taValues,1)
                           IF ( !EMPTY(taValues[m.ix]) )
                                  lcComments = lcComments + taValues[m.ix] + SPACE(1)
                           ENDIF
                     ENDFOR
              ENDIF
              RETURN TRIM(m.lcComments)
       ENDPROC
 
 
       PROCEDURE isalldigit
              LPARAMETERS tcValue
              RETURN EMPTY(CHRTRAN(tcValue,'0123456789',''))
       ENDPROC
 
 
       PROCEDURE isyear
              LPARAMETERS tcValue
              RETURN THIS.IsAllDigit(tcValue) AND ;
                     INLIST(LEN(tcValue),2,4) AND ;
                     BETWEEN(YEAR(CTOD('1/1/'+tcValue)),YEAR(DATE())-3,YEAR(DATE())+1)
       ENDPROC
 
 
ENDDEFINE
*
*-- EndDefine: parseclass
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform