Что нового

[Данные, строки] Массивы + чтение txt

AndreySeVeN

Новичок
Сообщения
26
Репутация
0
Здравствуйте. Нужно создать N кол. массивов (в файле 76 строк) и записать числа которые находятся после второй запятой в строке в новый массив. Пример:
Строка в txt: 0,0,2000,1,8
Программа должна записать в первый массив число 2000(т.к. находится после второй запятой)
Вторая строка txt: 0,0,1998,1,6
Программа во второй массив запишет число 1998.

И так кол. массивов да конца txt файла(в нем 76 строк)
Мне бы просто понять, как создавать такие массивы.

И если можно, что бы у массивов было название например mas и число массива(mas1 mas2 mas3 и так до 76)

P.S. Я уже полгода пытался написать программу для создания таких массивов, но ничего не получалось, пожалуйста, помогите.
 

firex

AutoIT Гуру
Сообщения
943
Репутация
208
AndreySeVeN [?]
и записать числа которые находятся после второй запятой в строке в новый массив

Код:
#Include <Array.au3>

Local $aTmp, $vData = FileRead( 'File.txt' )
; -
$vData = StringSplit( StringStripCR( $vData ), @LF )
For $Line = 1 To $vData[0] Step 1
	$aTmp = StringSplit( StringRegExpReplace( $vData[$Line], '[^\,]*\,', '', 2 ), ',' )
	; -
	Assign( 'mas' & $Line, $aTmp )
Next

If IsDeclared( 'mas1' ) Then _
	_ArrayDisplay( $mas1 )
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
AndreySeVeN
Зачем много массивов по одному значению? Лучше один массив со всеми значениями
Код:
#include <File.au3>
#include <Array.au3>

Global $mas2D
_FileReadToArray("File.txt", $mas2D, 0, ",")
_ArrayDisplay($mas2D)

Global $mas[UBound($mas2D)]
For $i = 0 To UBound($mas2D) - 1
  $mas[$i] = $mas2D[$i][2]
Next
_ArrayDisplay($mas)
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Код:
#Include <Array.au3>

$vData = FileRead( 'File.txt' )
$mas =  StringRegExp( $vData, '(?smi)^\d+,\d+,(\d+)', 3)
_ArrayDisplay( $mas )
 
Верх