Skocz do zawartości

jak zapisac tablice do pliku *.txt ?


Rekomendowane odpowiedzi

tak jak w temacie. W jaki sposob zapisac tablice do pliku *.txt ? Probuje zapisac to tak :

#include <Array.au3>
#include <File.au3>

Global $n = 10
Global $tablica[$n] = [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 ]

$file = FileOpen("dane.txt", 1)
	_FileWritetoline("dane.txt", 2 ,"$tablica[n]  " & $tablica[$n] , 1)
FileClose($file)

 

i taki blad mi wyskakuje :

 

==> Array variable has incorrect number of subscripts or subscript dimension range exceeded.:

_FileWritetoline("dane.txt", 2 ,"$tablica[n] "& $tablica[$n] , 1)

_FileWritetoline("dane.txt", 2 ,"$tablica[n] "& ^ ERROR

 

Co mam zrobic ?

Odnośnik do komentarza
Udostępnij na innych stronach

#include <Array.au3>
#include <File.au3>

Global $tablica[10] = [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 ]

$file = FileOpen("dane.txt", 1)

for $i = 0 to 9
_FileWritetoline($file, 2 ,"$tablica[" & $i & "] = " & $tablica[$i] , 1)
next
FileClose($file)

 

sprawdzilem to i tworzy jedynie pusty plik txt

Odnośnik do komentarza
Udostępnij na innych stronach

To zrób tak:

#include <Array.au3>
#include <File.au3>

Global $tablica[10] = [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 ]

$file = FileOpen("dane.txt", 2)

$text = ""
for $i = 0 to 9
$text &= "$tablica[" & $i & "] = " & $tablica[$i] & @CRLF
next
FileWrite($file, $text)
FileClose($file)

Odnośnik do komentarza
Udostępnij na innych stronach

Func Array2DSaveToFile(ByRef $aArray, $sFile, $sDelimeter = Default)
       If Not IsArray($aArray) Then Return False
       If Not UBound($aArray,0) = 2 Then Return False

       If $sDelimeter = Default Then $sDelimeter = Opt("GUIDataSeparatorChar")

       Local $hFile = FileOpen($sFile, BitOR(2, 32))   ; write, erease previous content, UTF16

       Local $iHeight = UBound($aArray, 1), $iWidth = UBound($aArray, 2)

       Local $sLine = ''

       For $iY = 0 to $iHeight - 1
               For $iX = 0 to $iWidth - 1
                       $sLine &= $aArray[$iY][$iX] & $sDelimeter
               Next
               FileWriteLine($hFile, $sLine)
               $sLine = ''
       Next

       FileClose($hFile)

       Return 1
EndFunc

Func Array2DReadFromFile(ByRef $aArray, $sFile, $sDelimeter = Default)
       If Not IsArray($aArray) Then Return False
       If Not UBound($aArray,0) = 2 Then Return False
       If $sDelimeter = Default Then $sDelimeter = Opt("GUIDataSeparatorChar")

       Local $hFile = FileOpen($sFile, BitOR(0, 32))   ; read
       If @error Then Return SetError(1, @error, False)

       Local $iHeight = UBound($aArray, 1), $iWidth = UBound($aArray, 2)
       Local $sLine = ''

       For $iY = 0 to $iHeight - 1
               $sLine = FileReadLine($hFile, $iY + 1)
               If @error Then Return SetError(2, @error, True)

               $sLine = StringSplit($sLine, $sDelimeter)

               If $sLine[0] > $iWidth -1 Then $sLine[0] = $iWidth

               For $iX = 0 to $sLine[0] -1
                       $aArray[$iY][$iX] = $sLine[$iX + 1]
               Next

       Next

       FileClose($hFile)

       Return 1
EndFunc

 

Mój kod z tego tematu:

http://www.mpcforum.pl/topic/310740-mrowka-langtona/

 

Musi to być tablica dwuwymiarowa.

Do jednowymiarowych masz funkcje _FileReadToArray oraz _FileWriteFromArray, więc nie mam pojęcia nad czym się powyższe posty głowią.

Ta sygnatura jest pusta.

Odnośnik do komentarza
Udostępnij na innych stronach

tak ma wyglądać wyjściowy plik czy inaczej ?

$tablica[9] = 10
$tablica[8] = 9
$tablica[7] = 8
$tablica[6] = 7
$tablica[5] = 6
$tablica[4] = 5
$tablica[3] = 4
$tablica[2] = 3
$tablica[1] = 2
$tablica[0] = 1

 

#include <Array.au3>
#include <File.au3>

Local $tablica[10] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

For $i = 0 To 9

_FileWriteToLine("dane.txt", 2, "$tablica[" & $i & "] = " & $tablica[$i], 0)

Next

_FileWriteToLine nie potrzebuje FileOpen

 

jeszcze jedno linia która chcesz zapisać musi istnieć czyli w pliku dane.txt walnij wcześniej przynajmniej 2x ENTER, przynajmniej u mnie wtedy zapisuje

If you = stupid then

insert(foot.in.your.ass)

end if

licznik-54-96732-stat.png

Odnośnik do komentarza
Udostępnij na innych stronach

Chodzi mi po prostu zebym mogl po kilku rzeczach wykonanych z tablica mogl ja zapisac do pliku txt , a po ponownym odpaleniu programu prog pobiera te tablice z pliku txt i zebym mogl dalej z nich korzystac. Dzieki za wasza pomoc. Zaraz sie tym pobawie i zobacze co mi wydzie :)

 

Jeszcze jedno pytanko : jak korzystac z funkcji _StringBetween

 

mam taki kod :

 

#include <FF.au3>
#include <String.au3>


_FFConnect ()
_FFOpenUrl ("http://www.onet.pl/")
$a = _FFReadtext ()
$b = _StringBetween($a, "Sprawdzaj ", "OnetPocztę")
MsgBox (0 , "" , "" & $b )

 

i mi nie dziala. Ktos pomoze ?

Edytowane przez adik_123
Odnośnik do komentarza
Udostępnij na innych stronach

zwraca wartośc pomiędzy wyrażeniami szukanymi

 

$tekst = "Ala ma kota"
$szukam = _StringBetween($tekst, "Ala ", " kota")
MsgBox (0 , "" , $szukam )

 

jakma działać twój kiedy nawet nie ma tam takich wyrażeń w tekście strony

If you = stupid then

insert(foot.in.your.ass)

end if

licznik-54-96732-stat.png

Odnośnik do komentarza
Udostępnij na innych stronach

zwraca wartośc pomiędzy wyrażeniami szukanymi

 

$tekst = "Ala ma kota"
$szukam = _StringBetween($tekst, "Ala ", " kota")
MsgBox (0 , "" , $szukam )

 

jakma działać twój kiedy nawet nie ma tam takich wyrażeń w tekście strony

 

Moglbys mi podac jakis najprostszy dzialajacy przyklad z wykorzystaniem ff.au3 , zeby zczytal jakis text ze strony www ?

 

 

taki kodzi sobie zrobilem z tablicami :

#include<File.au3>

Global $tablica[10] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

_FileWriteFromArray("dane1.txt", $tablica, 0)

Dim $tablica

_FileReadToArray("dane1.txt",$tablica)

For $x = 1 to $tablica[0]
Next

MsgBox (0,"","$tablica[0] = " & $tablica[0] & @LF & _
				"$tablica[1] = " & $tablica[1] & @LF & _
				"$tablica[2] = " & $tablica[2] & @LF & _
				"$tablica[3] = " & $tablica[3] & @LF & _
				"$tablica[4] = " & $tablica[4] & @LF & _
				"$tablica[5] = " & $tablica[5] & @LF & _
				"$tablica[6] = " & $tablica[6] & @LF & _
				"$tablica[7] = " & $tablica[7] & @LF & _
				"$tablica[8] = " & $tablica[8] & @LF & _
				"$tablica[9] = " & $tablica[9] )

 

i przesuwa mi wartosc kazdej tablicy +1 :/ co mam zrobic zeby dzialalo ?

 

 

 

Kombinuje teraz ze _StringBetween i mi nie dziala :/

 

24057777.jpg

 

co robie zle ?

 

Ok , juz wiem

MsgBox (0 , "" , "" & $szukam[0] )

i wsio dziala

Edytowane przez adik_123
Odnośnik do komentarza
Udostępnij na innych stronach

 Udostępnij

  • Ostatnio przeglądający forum jak zapisac tablice do pliku *.txt ?   0 użytkowników
    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...