Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Данные из текстового файла в многомерный массив Добавлено: 30.01.09 19:36  

Автор вопроса:  aLers
Первые шаги, первые трудности...

Имеется текстовый файл:

TEXT1,1111,2222,3333,4444,5555,6666
TEXT2,1111,2222,3333,4444,5555,6666
...
TEXT9,1111,2222,3333,4444,5555,6666

(всего в файле 25000 строк)

Для дальнейшей обработки его нужно преобразовать в многомерный (25000, 7) массив. На первый взгляд, задача вроде несложная, но что-то не получается ее реализовать, подскажите, плз.

Ответить

  Ответы Всего ответов: 5  

Номер ответа: 1
Автор ответа:
 Леша



ICQ: 362231326 

Вопросов: 9
Ответов: 76
 Профиль | | #1 Добавлено: 30.01.09 22:38
А что буде содержаться в 7-й ячейке массива?
Если нумерация с 0 начинать то массив нужно объявить как (n-1, k-1) или что то вроде
а если с 1 то тогда ладана
можно попробовать например так (в коде могут быть ошибки - пишу суть) :)

  1.  
  2.  
  3. Dim FilePath as string
  4.  
  5. Dim FileNo as integer
  6. Dim i as integer  
  7. dim k as integer
  8. Dim StrLine as string
  9. Dim TextArray(2499,6) as String
  10.  
  11. 'filepeth - думаю понятно что это переменная содерж полный путь к читаемому файлу
  12. Fileno = freefile
  13. Open filepath for input as fileno
  14.     do while not eof(fileno)
  15.      line input #fileno, strline
  16.      textarray (i,0) = mid (strline,1,5,)
  17.      textarray (i,1) = mid (strline,7,4)
  18.      ' ну ии так далее вообщем
  19.      ' анализ строки можно например еще циклом сделать, и находить  запятую по asc = 44, соответственно от этого вытягивать из строки инфу
  20.      i = i+1
  21.     loop
  22. close #fileno

Ответить

Номер ответа: 2
Автор ответа:
 fAndOrIn



Вопросов: 5
Ответов: 344
 Профиль | | #2 Добавлено: 31.01.09 08:46
А может лучше так -
  1. line input #fileno, strline
  2. dim a
  3. do while not eof(fileno)
  4. a=split(strline,",")
  5. for k=0 to ubound(a)
  6.   textarray(i,k)=a(k)
  7. next k
  8. i=i+1
  9. loop

Ответить

Номер ответа: 3
Автор ответа:
 Леша



ICQ: 362231326 

Вопросов: 9
Ответов: 76
 Профиль | | #3 Добавлено: 31.01.09 22:24
Конечно то можно и так - так по моему даже быстрее будет, чем через оператор mid, просто я человеку показал принцип, как можно организовать чтение и анализ строки, а там уже дело, как говориться техники... :):):):)

Ответить

Номер ответа: 4
Автор ответа:
 Imperial Kashak



ICQ: 479713821 

Вопросов: 10
Ответов: 57
 Профиль | | #4 Добавлено: 10.02.09 15:08
Млин, надо бы ещё про сплит почитать...
Почти та же проблема, только разделитель другой, ну и массив не такой огромный ))

Ответить

Номер ответа: 5
Автор ответа:
 GDK



Вопросов: 13
Ответов: 348
 Профиль | | #5 Добавлено: 11.02.09 13:58
В сплит первый параметр - исходная строка, второй - разделитель. Возвращаемое значение - строковый одномерный массив, начинающийся с нуля.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам