1: Function main()
2:
3: LOCAL hPessoa := hb_hash()
4: LOCAL hPessoas := hb_hash()
5: LOCAL nPessoa := 0
6: LOCAL nPessoas := 1000
7:
8: SET CENTURY ON
9: SET DATE TO BRITISH
10: SET DATE FORMAT "mm/dd/yyyy"
11:
12: hPessoa["PESSOA"] := hb_hash()
13: hb_HSetCaseMatch( hPessoa["PESSOA"] , .F. )
14:
15: hPessoa["PESSOA"]["NOME"] := "BlackTDN"
16: hPessoa["PESSOA"]["NASCIMENTO"] := Ctod("01/01/2012")
17: hPessoa["PESSOA"]["SEXO"] := "M"
18: hPessoa["PESSOA"]["PAIS"] := "Brasil"
19: hPessoa["PESSOA"]["ENDEREÇO"] := "http://blacktdn.com.br"
20: hPessoa["PESSOA"]["CEP"] := "00000-000"
21:
22: ? 'hPessoa["PESSOA"]["NOME"] :' + LTrim(str(hb_hPos( hPessoa["PESSOA"] , "NOME" ) ))
23: ? 'hPessoa["PESSOA"]["NOME"] :' + hb_hGet( hPessoa["PESSOA"] , "NOME" )
24: ? hb_OsNewLine()
25:
26: ? 'hPessoa["PESSOA"]["NASCIMENTO"] :' + LTrim(str(hb_hPos( hPessoa["PESSOA"] , "NASCIMENTO" ) ))
27: ? 'hPessoa["PESSOA"]["NASCIMENTO"] :' + dtoc( hb_hGet( hPessoa["PESSOA"] , "NASCIMENTO" ) )
28: ? hb_OsNewLine()
29:
30: ? 'hPessoa["PESSOA"]["SEXO"] :' + LTrim(str(hb_hPos( hPessoa["PESSOA"] , "SEXO" )))
31: ? 'hPessoa["PESSOA"]["SEXO"] :' + hb_hGet( hPessoa["PESSOA"] , "SEXO" )
32: ? hb_OsNewLine()
33:
34: ? 'hPessoa["PESSOA"]["PAIS"] :' + LTrim(str(hb_hPos( hPessoa["PESSOA"] , "PAIS" )))
35: ? 'hPessoa["PESSOA"]["PAIS"] :' + hb_hGet( hPessoa["PESSOA"] , "PAIS" )
36: ? hb_OsNewLine()
37:
38: ? hb_AnsiToOem('hPessoa["PESSOA"]["ENDEREÇO"] :') + LTrim(str(hb_hPos( hPessoa["PESSOA"] , "ENDEREÇO" ) ))
39: ? hb_AnsiToOem('hPessoa["PESSOA"]["ENDEREÇO"] :') + hb_hGet( hPessoa["PESSOA"] , "ENDEREÇO" )
40: ? hb_OsNewLine()
41:
42: ? 'hPessoa["PESSOA"]["CEP"] :' + LTrim(str( hb_hPos( hPessoa["PESSOA"] , "CEP" ) ))
43: ? 'hPessoa["PESSOA"]["CEP"] :' + hb_hGet( hPessoa["PESSOA"] , "CEP" )
44: ? hb_OsNewLine()
45:
46: For nPessoa := 1 To nPessoas
47: hPessoas[nPessoa] := hb_hClone(hPessoa)
48: hPessoas[nPessoa]["PESSOA"]["NOME"] += ' ' + StrZero(nPessoa,4)
49: IF ( ( nPessoa % 2 ) == 0 )
50: hPessoas[nPessoa]["PESSOA"]["NASCIMENTO"] := YearSum( hPessoas[nPessoa]["PESSOA"]["NASCIMENTO"] , nPessoa )
51: Else
52: hPessoas[nPessoa]["PESSOA"]["NASCIMENTO"] := YearSub( hPessoas[nPessoa]["PESSOA"]["NASCIMENTO"] , nPessoa )
53: EndIF
54: Next nPessoa
55:
56: FOR EACH hPessoa in hPessoas
57:
58: ? 'hPessoa["PESSOA"]["NOME"] :' + LTrim(str(hb_hPos( hPessoa["PESSOA"] , "NOME" ) ))
59: ? 'hPessoa["PESSOA"]["NOME"] :' + hb_hGet( hPessoa["PESSOA"] , "NOME" )
60: ? hb_OsNewLine()
61:
62: ? 'hPessoa["PESSOA"]["NASCIMENTO"] :' + LTrim(str(hb_hPos( hPessoa["PESSOA"] , "NASCIMENTO" ) ))
63: ? 'hPessoa["PESSOA"]["NASCIMENTO"] :' + dtoc( hb_hGet( hPessoa["PESSOA"] , "NASCIMENTO" ) )
64: ? hb_OsNewLine()
65:
66: ? 'hPessoa["PESSOA"]["SEXO"] :' + LTrim(str(hb_hPos( hPessoa["PESSOA"] , "SEXO" )))
67: ? 'hPessoa["PESSOA"]["SEXO"] :' + hb_hGet( hPessoa["PESSOA"] , "SEXO" )
68: ? hb_OsNewLine()
69:
70: ? 'hPessoa["PESSOA"]["PAIS"] :' + LTrim(str(hb_hPos( hPessoa["PESSOA"] , "PAIS" )))
71: ? 'hPessoa["PESSOA"]["PAIS"] :' + hb_hGet( hPessoa["PESSOA"] , "PAIS" )
72: ? hb_OsNewLine()
73:
74: ? hb_AnsiToOem('hPessoa["PESSOA"]["ENDEREÇO"] :') + LTrim(str(hb_hPos( hPessoa["PESSOA"] , "ENDEREÇO" ) ))
75: ? hb_AnsiToOem('hPessoa["PESSOA"]["ENDEREÇO"] :') + hb_hGet( hPessoa["PESSOA"] , "ENDEREÇO" )
76: ? hb_OsNewLine()
77:
78: ? 'hPessoa["PESSOA"]["CEP"] :' + LTrim(str( hb_hPos( hPessoa["PESSOA"] , "CEP" ) ))
79: ? 'hPessoa["PESSOA"]["CEP"] :' + hb_hGet( hPessoa["PESSOA"] , "CEP" )
80: ? hb_OsNewLine()
81:
82: NEXT EACH \\hPessoa
83:
84: inkey(0)
85:
86: Return( .T. )
87:
88: Function Day2Str( uData )
89: Local cType := ValType( uData )
90: IF ( cType == "D" )
91: Return( StrZero( Day( uData ) , 2 ) )
92: ElseIF ( cType == "N" )
93: Return( StrZero( uData , 2 ) )
94: ElseIF ( cType == "C" )
95: Return( StrZero( Val( uData ) , 2 ) )
96: EndIF
97:
98: Function Month2Str( uData )
99: Local cType := ValType( uData )
100: IF ( cType == "D" )
101: Return( StrZero( Month( uData ) , 2 ) )
102: ElseIF ( cType == "N" )
103: Return( StrZero( uData , 2 ) )
104: ElseIF ( cType == "C" )
105: Return( StrZero( Val( uData ) , 2 ) )
106: EndIF
107:
108: Function Year2Str( uData )
109: Local cType := ValType( uData )
110: IF ( cType == "D" )
111: Return( StrZero( Year( uData ) , 4 ) )
112: ElseIF ( cType == "N" )
113: Return( StrZero( uData , 4 ) )
114: ElseIF ( cType == "C" )
115: Return( StrZero( Val( uData ) , 4 ) )
116: EndIF
117:
118: Function Last_Day( dDate )
119:
120: Local nMonth
121: Local nYear
122:
123: IF ( ValType( dDate ) == "C" )
124: dDate := CToD( dDate )
125: EndIF
126:
127: nMonth := ( Month( dDate ) + 1 )
128: nYear := Year( dDate )
129: IF ( nMonth > 12 )
130: nMonth := 1
131: ++nYear
132: EndIF
133:
134: dDate := CToD( "01/" + Month2Str( nMonth ) + "/" + Year2Str( nYear ) )
135: dDate -= 1
136:
137: Return( Day( dDate ) )
138:
139: Function YearSum( dDate , nYear )
140:
141: Local nMonthAux := Month( dDate )
142: Local nDayAux := Day( dDate )
143: Local nYearAux := Year( dDate )
144:
145: nYearAux += nYear
146: dDate := Ctod( Day2Str( nDayAux ) + "/" + Month2Str( nMonthAux ) + "/" + Year2Str( nYearAux ) )
147: IF Empty( dDate )
148: dDate := Ctod( Day2Str( 1 ) + "/" + Month2Str( nMonthAux ) + "/" + Year2Str( nYearAux ) )
149: nDayAux := Last_Day( dDate )
150: dDate := Ctod( Day2Str( nDayAux ) + "/" + Month2Str( nMonthAux ) + "/" + Year2Str( nYearAux ) )
151: EndIF
152:
153: Return( dDate )
154:
155: Function YearSub( dDate , nYear )
156:
157: Local nMonthAux := Month( dDate )
158: Local nDayAux := Day( dDate )
159: Local nYearAux := Year( dDate )
160:
161: nYearAux -= nYear
162: dDate := Ctod( Day2Str( nDayAux ) + "/" + Month2Str( nMonthAux ) + "/" + Year2Str( nYearAux ) )
163: IF Empty( dDate )
164: dDate := Ctod( Day2Str( 1 ) + "/" + Month2Str( nMonthAux ) + "/" + Year2Str( nYearAux ) )
165: nDayAux := Last_Day( dDate )
166: dDate := Ctod( Day2Str( nDayAux ) + "/" + Month2Str( nMonthAux ) + "/" + Year2Str( nYearAux ) )
167: EndIF
168:
169: Return( dDate )
Comentários
Postar um comentário