Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Problem] .ini i tablica


Rekomendowane odpowiedzi

Opublikowano

Mam coś takiego

 

$i=1
While 1

[cos tam]
	_wypisz()
WEnd

func _wypisz()
	$linie=(_FileCountLines("pref.ini"))/9
	Do
		$var=IniReadSection("pref.ini",$i)
		if $var[3][1] = "historia" Then
			$dane=$var[1][1]& " | " & $var[2][1] & " | " & $var[3][1] 
			GUICtrlCreateListViewItem($dane,$ListView1)
		ElseIf $var[3][1] = "ferm." Then
			$dane=$var[1][1]& " | " & $var[2][1] & " | " & $var[3][1]
			GUICtrlCreateListViewItem($dane,$ListView2)
		EndIf
		$i+=1
	Until $i=$linie
EndFunc

 

a w pliku ini

[1]
numer=01
nazwa=testowe
stan=historia

 

Jednak wyskakuje mi błąd:

Subscript used with non-Array variable.:
if $var[3][1] = "historia" Then
if $var^ ERROR
Opublikowano

wszystko wygląda ok. pojawiło się okno z tablicą wyglądającą jak plik ini. (poza tym, że w 1 wierszu i 1 (2, jeśli liczyć 0) kolumnie jest cyfra 8, a w ini 1 wiersz to tylko nazwa sekcji

 

Zapomniałem napisać, że $linie=(_FileCountLines("pref.ini"))/9 dzielę przez 9, bo każda sekcja zajmuje 9 wierszy.

Opublikowano

ilość danych do wczytania powinieneś mieć zapisane nie jako liczbę linii, a liczbę sekcji. Powinieneś tę liczbę wczytywać z tego właśnie pliku ini.

Opublikowano

No, poradziłem sobie ;)

wystarczyło sprawdzić, czy $var jest tablicą

 

fragment kodu:

func _wypisz()
	$linie=IniReadSectionNames("pref.ini")
	Do
		$var=IniReadSection("pref.ini",$i)
	If IsArray($var)=1 Then
		if $var[3][1] = "historia" Then

...

	EndIf
		$i+=1
	EndIf
	Until $i=$linie[0]
EndFunc

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...