|
|
|
Интересная задачка (txt в dbf)
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Вот какая задачка. Есть текстовые файлы данного вида: ******************** ГодПериодОтч:2005 ДокПредст: ОКЕИ:383 КолПокФОтч:17 ### ОКАТО:22247501000 ### КБК:18210202020061000160 СумПл1:4116 СумПл2:3463 СумПл3:3431 ### КБК:18210202010061000160 СумПл1:22610 СумПл2:21085 СумПл3:33151 ### ******************** Необходимо его закачать в dbf Делал так: ... g_p_ot = 'ГодПериодОтч' doc_p = 'ДокПредст' okey = 'ОКЕИ' p_f_ot = 'КолПокФОтч' okato = 'ОКАТО' IF FILE('fns.dbf') DELETE FILE fns.dbf endif IF FILE('temp.dbf') DELETE FILE temp.dbf endif CREATE TABLE fns (g_p_ot c(4), doc_p c(4), okey c(4), p_f_ot c(3), okato c(13), kbk_s c(20), kbk_n c(20)) create table temp (line c(130)) =adir(aFiles,"*.023") rt=alen(aFiles,1) for ss=1 to rt append from &aFiles(ss,1) TYPE SDF as 866 ENDFOR SELECT temp go top scan d = line e = AT(":", d) e2 = SUBSTR(d, 1, e-1) e3 = AT(' ', d) e4 = SUBSTR(d, e+1, e3-1) e5 = SUBSTR(d, e+1) SELECT temp IF e <> 0 AND g_p_ot = e2 SELECT fns replace g_p_ot WITH e4 ENDIF SELECT temp IF e <> 0 AND doc_p = e2 SELECT fns replace doc_p WITH e4 ENDIF SELECT temp IF e <> 0 AND okey = e2 SELECT fns replace okey WITH e4 ENDIF SELECT temp IF e <> 0 AND p_f_ot = e2 SELECT fns replace p_f_ot WITH e4 ENDIF SELECT temp IF e <> 0 AND okato = e2 SELECT fns replace okato WITH e4 ENDIF SELECT temp IF e <> 0 AND kbk = e2 SELECT fns replace kbk_s WITH e4 ENDIF endscan И тут я сел :(( Данные повторяются. ***** КБК: СумПл1: СумПл2: СумПл3: ***** Помогите подскажите - в каком направлении шагать. Сильно не пинайте - только учусь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2006, 09:00 |
|
||
|
Интересная задачка (txt в dbf)
|
|||
|---|---|---|---|
|
#18+
Копай в сторону функций работы с файлами FOPEN(), FGETS() примерно так Код: plaintext 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. Login: tyuty Client: ftytyurtyury Address: Phone: [Client] Login: test Client: test Address: Phone: 123456 Код клиента: 441924 [Client] Login: admin Client: Администратор Address: Phone: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2006, 10:25 |
|
||
|
Интересная задачка (txt в dbf)
|
|||
|---|---|---|---|
|
#18+
В смысле: как обработать повторяющиеся блоки строк? Ну, так у тебя же есть признак, что строка символов "###" - это конец очередного блока информации, а какой именно это будет блок зависит от начала текста следующей строки. Код: plaintext 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. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. В данном случае формируются 2 связанные таблицы: заголвок и платежи. Но можешь все впихнуть и в одну ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2006, 15:39 |
|
||
|
|

start [/forum/topic.php?fid=41&tid=1590397]: |
0ms |
get settings: |
4ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
177ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
23ms |
get tp. blocked users: |
1ms |
| others: | 200ms |
| total: | 426ms |

| 0 / 0 |
