Перейти к содержимому

Фотография

Чтение из txt-файла


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 3

#1 Paul

Paul

    Новый участник

  • Members
  • Pip
  • 19 сообщений
  • ФИО:Павел

Отправлено 04 февраля 2011 - 14:34

Добрый день!
Возникла потребность считать данные из txt файла в массив.
В txt хранятся некоторые числовые данные, разделенные запятой.
Как я могу это сделать? Желательно на языке С#Script, но не критично
Заранее спасибо
  • 0

#2 modbear

modbear

    Специалист

  • Members
  • PipPipPipPipPip
  • 548 сообщений

Отправлено 04 февраля 2011 - 15:54

Возникла потребность считать данные из txt файла в массив.
В txt хранятся некоторые числовые данные, разделенные запятой.
Как я могу это сделать?

Есть несколько способов; всё зависит от того, какой у вас файл.

Например, если в файле всего одна строка:
1,2,3,4,5,6
то можно обойтись одной строкой кода:
var arr = aqFile.ReadWholeTextFile("C:\MyFile.txt", aqFile.ctANSI).split(",");

Другое дело - если файл большой, и при этом некоторые значения содержат символ, который используется в качестве разделителя:
1,2,"3,14"
5,"6,17",8
"9,25",10,42
...
В таком случае чтобы не париться с распарсиванием CSV проще всего читать файл как базу данных, с помощью скриптового объекта ADODB.Recordset. В MSDN про это есть прекрасная статья с примерами. Правда, там примеры на VBScript, но переписать их на другом языке не должно составить особого труда.


  • 0

#3 Paul

Paul

    Новый участник

  • Members
  • Pip
  • 19 сообщений
  • ФИО:Павел

Отправлено 08 февраля 2011 - 14:26

Возникла потребность считать данные из txt файла в массив.
В txt хранятся некоторые числовые данные, разделенные запятой.
Как я могу это сделать?

Есть несколько способов; всё зависит от того, какой у вас файл.

Например, если в файле всего одна строка:
1,2,3,4,5,6
то можно обойтись одной строкой кода:
var arr = aqFile.ReadWholeTextFile("C:\MyFile.txt", aqFile.ctANSI).split(",");

Другое дело - если файл большой, и при этом некоторые значения содержат символ, который используется в качестве разделителя:
1,2,"3,14"
5,"6,17",8
"9,25",10,42
...
В таком случае чтобы не париться с распарсиванием CSV проще всего читать файл как базу данных, с помощью скриптового объекта ADODB.Recordset. В MSDN про это есть прекрасная статья с примерами. Правда, там примеры на VBScript, но переписать их на другом языке не должно составить особого труда.


Файл у меня как раз, как в 1 примере, поэтому, походу, мне очень повезло. Огромное спасибо!!!!
  • 0

#4 Paul

Paul

    Новый участник

  • Members
  • Pip
  • 19 сообщений
  • ФИО:Павел

Отправлено 23 февраля 2011 - 11:59

Маленькое уточнение, синтаксис C#Script требует, чтобы в указании пути использовался двойной слеш(\\).
Т.е. "C:\MyFile.txt" должно выглядеть как "C:\\MyFile.txt"
  • 0


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных