Что нового

[Массивы] как записать трёхмерный массив в текстовый файл?

urrya

Новичок
Сообщения
159
Репутация
1
Всем привет.
Собственно в названии темы и есть сам вопрос -
"как записать трёхмерный массив в текстовый файл?"
А вообще задача такая:
Требуется записать в какой либо формат файла трёхмерный массив.
При повторной записи такого же (трёхмерного) массива, необходимо
прочитать из предыдущих записей, сравнить со всеми на совпадения данных,
и если совпадений нет записать новый файл с данными массива.
Покажите пожалуйста пример, как сделать запись массива и в какой формат,
что бы потом можно было считывать и сравнивать массивы.
Заранее спасибо всем!
:-[
 

AZJIO

Меценат
Меценат
Сообщения
2,892
Репутация
1,196
как то так

ячейка0.1.1 ячейка0.1.2
ячейка0.2.1 ячейка0.2.2
разделитель
ячейка1.1.1 ячейка1.1.2
ячейка1.2.1 ячейка1.2.2
 
Автор
urrya

urrya

Новичок
Сообщения
159
Репутация
1
AZJIO
Спасибо за ответ, но что то я не пойму ничего в Вашем "примере" :(


Добавлено:
Сообщение автоматически объединено:

почему вот так не работает?
Код:
#include <Array.au3>
sap1()
Func sap1()
 Local $r[3][3] = [[1,2,3], [2,4,6], [3,6,8]]
$filelog = FileOpen("ss.txt",32)
FileWriteLine($filelog, $r)
FileClose($filelog)
_ArrayDisplay($r)
EndFunc


в этом примере файл ss.txt пустой :(
 

Fever

Скриптер
Сообщения
308
Репутация
112
Преобразовать в строку и уже в таком виде записывать в файл

Код:
Local $aA[2][2][2] = [[[1, 2], [3, 4]], [[5, 6], [7, 8]]]

MsgBox(0, "", _3DArrayToStr($aA))

Func _3DArrayToStr($aArray)
	Local _
		$sCellDelimiter = ",", _
		$sRowDelimiter = "|", _
		$sMatrixDelimiter = "|||", _
		$sResult

	For $i = 0 To UBound($aArray, 1) - 1
		For $j = 0 To UBound($aArray, 2) - 1
			For $k = 0 To UBound($aArray, 3) - 1
				$sResult &= $aArray[$i][$j][$k] & $sCellDelimiter
			Next

			$sResult = StringTrimRight($sResult, StringLen($sCellDelimiter))
			$sResult &= $sRowDelimiter
		Next

		$sResult = StringTrimRight($sResult, StringLen($sRowDelimiter))
		$sResult &= $sMatrixDelimiter
	Next

	$sResult = StringTrimRight($sResult, StringLen($sMatrixDelimiter))

	Return $sResult
EndFunc
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
urrya [?]
почему вот так не работает?
Код:
_Sap1()

Func _Sap1()
	
	Local $r[3][3] = [[1,2,3], [2,4,6], [3,6,8]]
	Local $iUB = UBound($r) -1, $sTmp = ''
	
	$hFile = FileOpen("ss.txt", 2)
	For $i = 0 To $iUB
		For $j = 0 To $iUB
			$sTmp &= $r[$i][$j]
		Next
		FileWriteLine($hFile, $sTmp)
		$sTmp = ''
	Next
	FileClose($hFile)
EndFunc ;==>_Sap1


P.S. Это двумерный массив.
 
Верх