|
|
|
Почему валится FileSystemObject при 5-6 обращении
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток, товарищи Подскажите пожалуйста почему валится след. кусок кода примерно на 5-6 обращении: Код: plaintext 1. 2. 3. 4. 5. Отмечу сразу что в массив зачитываются просто огроменные файлы логов. Вот и собственно как сделать так чтобы не валилось считывание инфы из логов в массив? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2008, 20:41 |
|
||
|
Почему валится FileSystemObject при 5-6 обращении
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2008, 20:45 |
|
||
|
Почему валится FileSystemObject при 5-6 обращении
|
|||
|---|---|---|---|
|
#18+
ох, так basic даже сплитовать массив отказался ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2008, 20:59 |
|
||
|
Почему валится FileSystemObject при 5-6 обращении
|
|||
|---|---|---|---|
|
#18+
Kallandorогроменные файлы а какие они, огромные, случайно не более двух гиг ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2008, 07:23 |
|
||
|
Почему валится FileSystemObject при 5-6 обращении
|
|||
|---|---|---|---|
|
#18+
Kallandor Отмечу сразу что в массив зачитываются просто огроменные файлы логов. Вот и собственно как сделать так чтобы не валилось считывание инфы из логов в массив? Читать их по частям. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2008, 10:36 |
|
||
|
Почему валится FileSystemObject при 5-6 обращении
|
|||
|---|---|---|---|
|
#18+
Где-то в MSDN написано. "For large files, using the ReadAll method wastes memory resources. Other techniques should be used to input a file, such as reading a file line by line." Можно посоветовать читать файл частями с помощью метода ReadLine. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2008, 11:18 |
|
||
|
Почему валится FileSystemObject при 5-6 обращении
|
|||
|---|---|---|---|
|
#18+
klen_ Kallandorогроменные файлы а какие они, огромные, случайно не более двух гиг Я тренировалась на текстовом файле размером в 147 Мб, но в реальности должны подтягиваться файлы с размерами до 1,5 Гб Собственно в соотв. с БОЛ я и использовала метод ReadAll - и он выполняется довольно-таки долго. А какие еще есть способы считывания больших массивов данных из файлов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2008, 11:56 |
|
||
|
Почему валится FileSystemObject при 5-6 обращении
|
|||
|---|---|---|---|
|
#18+
Попробуйте использовать ADODB.Stream ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2008, 12:02 |
|
||
|
Почему валится FileSystemObject при 5-6 обращении
|
|||
|---|---|---|---|
|
#18+
скажите, вот вы прочитали пару записей (допустим всего две) что дальше будете делать? какова, вообще, цель? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2008, 12:18 |
|
||
|
Почему валится FileSystemObject при 5-6 обращении
|
|||
|---|---|---|---|
|
#18+
я к тому что можно так прочитать, и подобрать наибольшую скорость, подбирая размер masFile() Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2008, 13:09 |
|
||
|
Почему валится FileSystemObject при 5-6 обращении
|
|||
|---|---|---|---|
|
#18+
klen_скажите, вот вы прочитали пару записей (допустим всего две) что дальше будете делать? какова, вообще, цель? Цель просто поиск в большом текстовом файле определенного контекста и в зависимости от насторек выводить несколько строк до и после этой записи. Вывожу строчки я в TextBox собственно все. Можно еще контекст выделить цветом (но я не знаю как это делается). Самое интересное что должна выводиться вся строка и строчки до и после ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2008, 14:05 |
|
||
|
Почему валится FileSystemObject при 5-6 обращении
|
|||
|---|---|---|---|
|
#18+
klen_я к тому что можно так прочитать, и подобрать наибольшую скорость, подбирая размер masFile() А какой размер лучше подбирать для ReadAll/ReadLine / Get ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2008, 14:06 |
|
||
|
Почему валится FileSystemObject при 5-6 обращении
|
|||
|---|---|---|---|
|
#18+
для случая Get = 1024 (длина массива) а ReadAll или ReadLine, для больших файлов не использовал, да и аргументов там по моему нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2008, 16:20 |
|
||
|
Почему валится FileSystemObject при 5-6 обращении
|
|||
|---|---|---|---|
|
#18+
Стараемся использовать переменные типа integer и byte, т.к. они самые быстрые. Допустим надо найти "искомое слово" или "какое-нибудь предложение" длиной не более 32768 символов Чем короче предложение, тем быстрее ищет. Например фразу "искомое слово", в файле 100 МБ, которая находилась где-то в конце файла, откомпилированный Project1.exe нашел за три секунды. Код: plaintext 1. 2. Код: 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. или ещё лучше, указать на системную dll, (чтоб не изобретать велосипед) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2008, 08:26 |
|
||
|
Почему валится FileSystemObject при 5-6 обращении
|
|||
|---|---|---|---|
|
#18+
klen_ При использовании вашего варианта vasic конечно быстро нашел, но вывел какие-то совершенно не понятные данные. Мой вариант поиска: Код: 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. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. Только у меня при чтении больших логов валится с ошибкой: Runtime error! abnormal program termination ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2008, 15:17 |
|
||
|
Почему валится FileSystemObject при 5-6 обращении
|
|||
|---|---|---|---|
|
#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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2008, 07:20 |
|
||
|
Почему валится FileSystemObject при 5-6 обращении
|
|||
|---|---|---|---|
|
#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. этот цикл исправил Код: 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. конечная часть прежняя Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2008, 14:41 |
|
||
|
Почему валится FileSystemObject при 5-6 обращении
|
|||
|---|---|---|---|
|
#18+
а какого формата эти большие текстовые логи. может их просто через ADODB.Recordset открывать и обрабатывать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2008, 14:48 |
|
||
|
Почему валится FileSystemObject при 5-6 обращении
|
|||
|---|---|---|---|
|
#18+
Konst_Oneа какого формата эти большие текстовые логибез разницы просто ищет совпадение указанных символов в любом файле ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2008, 14:59 |
|
||
|
Почему валится FileSystemObject при 5-6 обращении
|
|||
|---|---|---|---|
|
#18+
тогда через ADODB запросом будет проще ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2008, 15:00 |
|
||
|
Почему валится FileSystemObject при 5-6 обращении
|
|||
|---|---|---|---|
|
#18+
Public Sub MakeSchema(ByVal FileName As String) Dim s As String Dim sFile As String Dim ss As String Dim sPath As String sPath = modFiles.FileGetPath(FileName) sFile = sPath & "SCHEMA.INI" ss = Dir(sPath & "*.*") Do If ss = "" Then Exit Do FileName = sPath & ss s = modFiles.FileGetNameOnly(FileName) & ".txt" modFiles.ProfileSetString s, "ColNameHeader", "True", sFile modFiles.ProfileSetString s, "Format", "TabDelimited", sFile modFiles.ProfileSetString s, "CharacterSet", "ANSI", sFile modFiles.ProfileSetString s, "MaxScanRows", "0", sFile ss = Dir() Loop End Sub '*в директории c:\tmp только txt файлы ваших логов ConnectionString = "Driver={Microsoft Text Driver (*.txt; *.csv)};DriverId=27;FIL=text;MaxBufferSize=2048;PageTimeout=5;Extensions=txt;" & _ "DBQ=c:\tmp;DefaultDir=c:\tmp;" MakeSchema FileName Set cn = New ADODB.Connection cn.CursorLocation = adUseClient cn.CommandTimeout = 20 cn.ConnectionTimeout = 30 cn.Open ConnectionString 142 Set rs = New ADODB.Recordset 144 rs.CursorLocation = adUseClient 146 Set rs.ActiveConnection = cn SQL = "SELECT Field1 FROM [mylog#txt] WHERE Field1 LIKE '%строка%'" 148 rs.Open SQL, , adOpenStatic, adLockReadOnly, adCmdText ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2008, 15:12 |
|
||
|
Почему валится FileSystemObject при 5-6 обращении
|
|||
|---|---|---|---|
|
#18+
забыл обрамление кода ;( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2008, 15:12 |
|
||
|
Почему валится FileSystemObject при 5-6 обращении
|
|||
|---|---|---|---|
|
#18+
Konst_One Код: plaintext 1. 2. 3. 4. 5. 6. Код: 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. но в моем случае, это не критично. К тому же условия, поиска и выбора записей, могут быть разные. И то что вы предложили, очень удобно. Спасибо С уважением Игорь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2009, 12:52 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=35720151&tid=2161474]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
65ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 216ms |
| total: | 380ms |

| 0 / 0 |
