Har ett litet problem.... Ett smidigt sätt är ju att göra din struct till serializable, sen serialisera arraylistan och spara ner bytes'en till fil. Sen är det ju bara läsa in alla bytes och deserialisera. Nu blev det grekiska för mig? Litet kort exempel? Eftersom jag inte kan ett dugg VB får du hålla till godo med C# kod, det borde vara relativt enkelt att översätta. Nåt sånt här borde det iaf bli: Tyvärr behärskar jag inte VB så jag kan inte hjälpa dig med det. Men om du inte redan löst det så borde någon vänlig själ här på forumet kunna översätta koden till VB! Börja med att skippa din Matris OutPutData och bygg så här istället tyvärr funkar det inte att skippa min array.. jag körde Samuels kodsnutt i en c# to vb konverter ( http://converter.telerik.com/ ) Andreas: Din kod är väl VB.NET? Det här forumet är för VB6... oj hehe då kan vi nästan glöma serialisering med engång då :) Hej <b>tyvärr funkar det inte att skippa min array.. </b> Jag tycker ditt projekt är väldigt intressant. Då skall vi se om jag kan förklara så att ni förstår hur jag menar med Arrayen... Bra förklarat.Tror att jag har hela bilden(woops :-) synlig för mig. <b>Om det är någon som har ett bättre förslag så säg gärna till.... Hm.. Får nog förklara en gång till..... Ja Ja Jag har tänkt alldeles galet. Återkommer när jag sugit på den karamellen. Ler...... Jag väntar... Vad du bör göra är att dela upp det i mindre delar. Men det går inte att göra så... Va? Igen.Var tvungen att göra en testrunda på hur man lagrar StrucktPoint i en fil och sedan återfår den. Detta innebär att du mycket väl kan köra med din lösning för att lagra till TextFil Sitter och funderar lite på problemet... Hur gör du en sådan array då?? Har provat denna nu: För det första heter det struct och inte struckt, för det andra ser jag ingen nytta med att ha kvar det, kalla det bara för point, scanner och picture, så ser man bättre vad som händer. struct... Ok.. Jag håller med... Blir lite Svengelska när man sitter och programmerar sent på nätterna efter jobbet.. Här ser du ett enkelt exempel: Nu skall Vi baxa detta projekt i land. Måste rensa hjärnan från gamla föreställningar. Detta är vad jag använder just nu: M... det där hjälpte ju inte dugg . Nu blandar du ihop Typ deklarationer med arrayer. Nej, han följer mitt förslag, det är betydligt enklare och klarare. Ahha det missade jag, läste inte ditt förslag så noga. Har försökt en massa olika varianter men nu såg jag en grej som jag inte provat... Ja, du måste dimensionera allting en efter en, du kan inte dimensionera flera saker i en array. Börja med det mest grunda, och fortsätt djupare och djupare. (Du behöver alltså först köra Jag löser det nu med att först kolla om pointen är tom annars spara ner vilken plats varje point har som jag sparar ner occh sedan pointen...Spara och läsa en ARRAY till/från fil?
Skall spara ner en array med nedanstående struktur till en fil...
Type StrucktPoint
X As Long
Y As Long
R As Byte
G As Byte
B As Byte
Res1 As Byte
Res2 As Byte
Res3 As Byte
Res4 As Byte
Intensity As Byte
RepeatPoint As Byte
End Type
Public OutPutData(100, 3, 100) As StrucktPoint
Om jag vill spara ner hela ARRAYen går det att göra?
Eller måste man ladda ner värde för värde?
Och går det att blanda variablertyper som man skriver?
Typ att man sparar:
En stringvariabel
En stringvariabel
En OutPutData (Se Ovan) ArraySv: Spara och läsa en ARRAY till/från fill?
Sv:Spara och läsa en ARRAY till/från fill?
Vad menar du med Deserialisera?Sv: Spara och läsa en ARRAY till/från fill?
[Serializable] // Gör struct'en serialiserbar
public struct StrucktPoint
{
public long X;
....
}
StrucktPoint p1 = new StrucktPoint();
StrucktPoint p2 = new StrucktPoint();
// sätt värden på p1 och p2 etc
ArrayList lst = new ArrayList(); // System.Collections
lst.Add(p1);
lst.Add(p2);
BinaryFormatter bf = new BinaryFormatter(); // System.Runtime.Serialization.Formatters.Binary;
using(FileStream fs = File.Create("c:\\minlista.txt")) // System.IO
{
bf.Serialize(fs, lst);
}
ArrayList lst2;
using (FileStream fs = File.OpenRead("c:\\minlista.txt"))
{
lst2 = (ArrayList)bf.Deserialize(fs);
}Sv: Spara och läsa en ARRAY till/från fill?
Sv:Spara och läsa en ARRAY till/från fill?
<code>
Option Explicit
Type StrucktPoint
X As Long
Y As Long
R As Byte
G As Byte
B As Byte
Res1 As Byte
Res2 As Byte
Res3 As Byte
Res4 As Byte
Intensity As Byte
RepeatPoint As Byte
End Type
Public OutPutData1(99) As StrucktPoint
Public OutPutData2(4) As StrucktPoint ' Nyfiken vilka av ovan ligger här
Public OutPutData3(99) As StrucktPoint
</code>
Den här principlösningen för att få över det till en TextFil är det smartaste.
Då får du bara en Array som underlättar betydligt. Glöm då 3 Array lösningen ovan
<code>
Public Entry As StrucktPoint
Public OutPutData() As String ' eller kanske Public OutPutData() As Entry
Dim FileNum As Long,txtData As String
*************************************
'När du börjar fylla Arrayen
'ReDim Preserve OutPutData(UBound(OutPutData) + Len(Entry))
'Ungefär så här på olika ställe
*****************************************************
txtData = "MinTestData.txt"
FileNum = FreeFile
Open "C:\DataText\" & txtData For Random As #FileNum Len = Len(Entry)
'här loopar du med
'For 0 To Ubound(OutPutData)
' Put #FileNum, , Entry
'End For
</code>
I princip så härSv: Spara och läsa en ARRAY till/från fill?
Det är en array med en massa 2D punkter..
Dvs OutPutData(BildNr,Rithuvud,PunktNr) så jag kan inte ta bort något av det...
I värsta fall så får jag spara punkterna en för en...
Men finns det ett bättre sätt så är blir man ju glad.Sv:Spara och läsa en ARRAY till/från fill?
sätt attributet <Serializable()> på din struct , sen kan du prova det här
Dim p1 As New StrucktPoint()
Dim p2 As New StrucktPoint()
' sätt värden på p1 och p2 etc
Dim lst As New ArrayList()
' System.Collections
lst.Add(p1)
lst.Add(p2)
Dim bf As New BinaryFormatter()
' System.Runtime.Serialization.Formatters.Binary;
Using fs As FileStream = File.Create("c:\minlista.txt")
' System.IO
bf.Serialize(fs, lst)
End Using
Dim lst2 As ArrayList
Using fs As FileStream = File.OpenRead("c:\minlista.txt")
lst2 = DirectCast(bf.Deserialize(fs), ArrayList)
End UsingSv: Spara och läsa en ARRAY till/från fill?
Sv:Spara och läsa en ARRAY till/från fill?
blir nog lite djupare saker som det här då
http://www.vb-helper.com/howto_vb6_serialize.html
#edit lade till länkenSv: Spara och läsa en ARRAY till/från fill?
Du bör kunna göra så här.
(princip)
<code>
Option Explicit
Private Const DIMENSION1 As Long = 1
Private Const DIMENSION2 As Long = 2
Private Const DIMENSION3 As Long = 3
Private Const FILENAME As String = "C:\temp\test.test"
Private Type StrucktPoint
x As Long
Y As Long
R As Byte
G As Byte
B As Byte
Res1 As Byte
Res2 As Byte
Res3 As Byte
Res4 As Byte
Intensity As Byte
RepeatPoint As Byte
End Type
Function WriteBinFileTest()
Dim myData(100, 3, 100) As StrucktPoint
Dim varData As Variant
Dim noOfBytes As Long
Dim fileNum As Long
fileNum = FreeFile
Open FILENAME For Binary Access Write As #fileNum
'Beräkna antalet bytes att skriva
Dim tmpData As StrucktPoint
noOfBytes = LenB(tmpData) * _
((UBound(myData, DIMENSION1) - LBound(myData, DIMENSION1) + 1) + _
(UBound(myData, DIMENSION2) - LBound(myData, DIMENSION2) + 1) + _
(UBound(myData, DIMENSION3) - LBound(myData, DIMENSION3) + 1))
Put #1, , myData
Close #fileNum
End Function
</code>Sv:Spara och läsa en ARRAY till/från fill?
Klart att det går. Helt onödigt/värdelöst att använda en 3 matris.
Gör dig besvär att läsa förstå vad du får för svar ovan.
Funderade på en sak. Varför måste du gå över en matris innan du läser in till fil.
Varför inte läsa in StrucktPoint direkt till filen med <b>Put #FileNum, ,StrucktPoint</b>
Då kan du betrakta textfilen på samma sätt som din <b>OutPutData(BildNr,Rithuvud,PunktNr)</b>Sv: Spara och läsa en ARRAY till/från fill?
Nyfiken på varför du tar en mellanväg med din 3 matris.
Hur går det till när du laddar in StrucktPoint till OutPutData(BildNr,Rithuvud,PunktNr) och
<b>varför är det så viktigt att du går via denna array ?</b>
Jag tror att du håller på med en TTF editor,ett gammalt projekt jag också funderat på.
Edit:
<b>tyvärr funkar det inte att skippa min array..
Det är en array med en massa 2D punkter..
Dvs OutPutData(BildNr,Rithuvud,PunktNr) så jag kan inte ta bort något av det... </b>
Har läst din tråd noga nu och börjar förstå att din Array OutPutData(100,3,100)
är du låst till av någon anledning <b>eller ?</b>Sv:Spara och läsa en ARRAY till/från fill?
Jag håller på med ett program som skall styra men showlaser..
OutPutData(Frame,Scanner,Point) är en array med punkter...
Där Frame är bildnumret..
Scanner är är med för att det finns 0-3 Scannerhuvud som ritar olika saker..
Point är Vilken punkt som den ritar...
Så för att förklara hur jag tänkt så Lopar den igenom Frame = 1 till alla Scanners 0-3 och Skickar först Punkt ett till dem.....
Sedan skickar den Punkt 2 till De 0-3 Scanners...
När den skickat alla alla Punkterna i Frame = 1 så väntar den en viss tid då den skall skicka Frame 2 till alla scanners...
Hm.. När jag tänker efter så här sent så förstod jag nog inte själv vad jag menade..
Till Varje bild som lasrarna skall rita så Finns det Totalt 4 Bilder (en för varje Scanner) med ett visst antal punkter som skall visas i en Bild....
Om det är någon som har ett bättre förslag så säg gärna till....
Speciellt om det inte går att Ändra Antalet i Arrayen mer än den sista Matrixen.....
Sedan behöver jag ju givetvis spara ner alla punkter i en fil...
Jag vet att det kanske är lite inveklat men någongång skall man ju lösa det med.. :)Sv: Spara och läsa en ARRAY till/från fill?
Ok Vi kör med din Array lösning Men ! .Gör tre enskilda INTE matris.
Public OutPutFrame(100) As Long
Public OutPutScan(3) As Byte
Public OutPutPoint(100) As Long
Om du känner för det så kan jag skriva ett förslag på hur jag skulle lösa det.
Tycker det är intressant project som jag själv skulle kunna ha användning för.
Blir det mycket jobb för dig att ändra enl det förslag jag tänker lämna ?
Jag gör detta som terapi. Pensionär som inte har annat kul att göra.
Sven :-) StandBy på denna kanalSv:Spara och läsa en ARRAY till/från fill?
Speciellt om det inte går att Ändra Antalet i Arrayen mer än den sista Matrixen.....
Sedan behöver jag ju givetvis spara ner alla punkter i en fil... </b>
Ang ReDim så är mitt förslag att Vi/Du bestämmer ett max värde för Array:n
I Fom Load laddar Vi med 256 i alla fack och med en enkel IF sats Exit For om värdet är > 255.
Public OutPutFrame(100) As Long
Public OutPutPoint(100) As Long
Men nu kommer stöttestenen Du har 11 olika värde i din Type StrucktPoint hur har du tänkt para ihop
dessa i 3 arrayer ?. R G och B kan man skriva som en Long typ 165834(bara ett ex.)
X och Y kan man skriva som 1 Long osv osv.
Min fråga återkommer varför måste Vi gå över Arrayer.
Varför inte köra mot en Randomfil direkt och som du vill mot Stringvariabler ?
Sven
som har tänt på ditt project vad avser optimering snabbhet.Sv: Spara och läsa en ARRAY till/från fill?
Varibeln OutPutData är en variabel med en massa punkter..
Om vi gör det enkelt så struntar vi i att det finns 4 Scannaerutgångar just nu..
Tänk att du skall ha en Animering med 2D vektor punkter (Type StrucktPoint (X,Y,Röd,Grön,Blå, osv)
Tänk att OutPutData har 100Bilder i en animering...
I varje bild har du 100 StrucktPoints....
Alltså har du en 100X100 array redan där...
Lasern ritar ju mellan varje punkt som finns i arrayen...
Så säg att den ritar Bild1:Punkt1,Punkt2,Punkt3-----Punkt100 och börjar om igen...
Tills det är dags för nästa Bild2:Punkt1,Punkt2,Punkt3-----Punkt100 och börjar om igen...
Lasern ritar med 45000punkter /s så den ritar om bilden många gånger...
Bildbytet sker ju efter en viss tid.. Typ10 bilder i sekunden... Eller vad man nu vill...
Tanken är ju att man laddar in hela Animeringen i en Array med StrucktPoint..
Har du 100bilder så är ju varja bild 100pkt->OutPutData(100,100)
Och för att sedan göra det ännu svårare så skall det vara 4Scannrar...
Varje bild ritar VARJE Scanner 100pkt... Och de 100pkt är ju inte samma mellan de olika..
Därför är det svårt att ta bort och göra 3 Olika Arrayer...
Varje punkt sedan talar om vilken X,Y position och Vilken mängd med R,G,B som som lasern skall ha när den kommer fram...
Vart jag sedan får alla punkter ifrån är olika.....
Man kan rita streck/cirklar på frihand...
SinusGeneratorer....
3Dritningar...
Osv...
Men bilderna måste ju sparas och laddas in igen...
Förklara jag mig lite bättre nu??Sv:Spara och läsa en ARRAY till/från fill?
Sv: Spara och läsa en ARRAY till/från fill?
I värsta fall får jag loopa igenom alla arrayer och spara... Hade varit skönt bara om det fanns något sätt att spara en hel array...Sv:Spara och läsa en ARRAY till/från fill?
1. en typ "animering", innehåller en array av bilder
2. en typ "bild", innehåller en array av punkter.
3. en typ "punkt", innehåller information om varje punkt.
Sen kör du i princip.
for i = lbound(animering.bilder) to ubound(animering.bilder)
do while (time...)
for j = lbound(animering.bilder(i).points) to ubound(animering.bilder(i).points)
drawpoint(animering.bilder(i).points(j))
next j
loop
next i
För att rita en ny punkt gör du :
sub add_point(bild, x,y, ...)
redim animering.bilder(bild).points(0 to n+1) as point
with animering.bilder(bild).points(n+1)
.x = x
...
end with
end subSv: Spara och läsa en ARRAY till/från fill?
Då varje Animering innehåller tex max 100 "Bilder(Frame)" där varje "Bild" innehåller max 4 Scanners Där varje Scanner Ritar Max 100 punkter.. Vilket ger 400000punkter att hålla reda på..
Det enda sättet att göra om Array är att lägga in i StrucktPointen: BildNr, ScannerNr,PointNummer MEN då måste man ju leta igenom alla Arrayer tills man hitta rätt Punkt.... Eller går det att sätta som i e Databas att BildNr=1, ScannerNr=1, PointNummer=1 och få reda på X,Y,R,G,B?
Isåfall skulle man kunna ha EN array..Sv:Spara och läsa en ARRAY till/från fill?
Det går visst att göra så, det enda är att du måste lägga till ytterligare ett steg för antalet scanners.
Läs det igenom och återkom, det är det mest vettiga sättet att lösa det på.Sv: Spara och läsa en ARRAY till/från fill?
Detta funkar.
<code>
Option Explicit
' i Modul 1
Type StrucktPoint
X As Long
Y As Long
R As Byte
G As Byte
B As Byte
Res1 As Byte
Res2 As Byte
Res3 As Byte
Res4 As Byte
Intensity As Byte
RepeatPoint As Byte
End Type
Public OutPutData(100,3,100) As StrucktPoint
'**********************************
'I Form 1
Option Explicit
Dim Entry As StrucktPoint
Private Sub Form_Load()
'Meningslösa test siffror
Entry.X = 1000
Entry.Y = 1400
Entry.R = 150
Entry.G = 210
Entry.B = 60
Entry.Res1 = 1
Entry.Res2 = 2
Entry.Res3 = 3
Entry.Res4 = 4
Entry.Intensity = 100
Entry.RepeatPoint = 80
End Sub
Private Sub Command1_Click()
'Börja med denna läser in StrucktPoint data i Arrayens fack nr 0
Private Sub Command1_Click()
Dim i As Long
'Börja med denna
For i = 0 To 2
OutPutData(i, 0, 0) = Entry
OutPutData(0, i, 0) = Entry
OutPutData(0, 0, i) = Entry
Next
End Sub
Private Sub Command2_Click()
'nästa lagra till fil
Dim FileNum As Long, txtData As String, i As Long
txtData = "MinTestData.txt"
FileNum = FreeFile
Open "C:\Temp\" & txtData For Binary As #FileNum Len = Len(Entry)
For i = 0 To 2
Put #FileNum, , OutPutData(i, 0, 0)
Next
Close #FileNum
End Sub
Private Sub Command3_Click()
'hämta tillbaka från fil
'nollställer för att vara säker att värdena kommer fån filen
Dim Entry As StrucktPoint
Dim FileNum As Long, txtData As String
' och det gör dom så det skall inte vara med
Entry.X = 0
Entry.Y = 0
Entry.R = 0
Entry.G = 0
Entry.B = 0
Entry.Res1 = 0
Entry.Res2 = 0
Entry.Res3 = 0
Entry.Res4 = 0
Entry.Intensity = 0
Entry.RepeatPoint = 0
txtData = "MinTestData.txt"
FileNum = FreeFile
Open "C:\Temp\" & txtData For Binary As #FileNum Len = Len(Entry)
Get #FileNum, , Entry
Close #FileNum
MsgBox Entry.X & " " & Entry.Y 'osv
End Sub
</code>
Så här ser det ut i filen HexEditor 17 Byte totalt för varje record
<b>00000000 E8 03 00 00 78 05 00 00 96 D2 3C 01 02 03 04 64
00000016 50 | E8 03 00 00 78 05 00 00 96 D2 3C 01 02 03 04
00000032 64 50 | E8 03 00 00 78 05 00 00 96 D2 3C 01 02 03
00000048 04 64 50 </b> Sv:Spara och läsa en ARRAY till/från fill?
Funderar fortfarande på vad du vill lagra i dimensionen 0-3
<b>Edit: Förslaget ovan är nu ändrat till 3 Matris
<code>
Public OutPutData(100,3,100) As StrucktPoint och
Dim FileNum As Long, txtData As String
txtData = "MinTestData.txt"
FileNum = FreeFile
Open "C:\Temp\" & txtData For Binary As #FileNum Len = Len(Entry)
Put #FileNum, , OutPutData(0,0,0)
Close #FileNum
</code>Sv: Spara och läsa en ARRAY till/från fill?
Just om det går att köra en annan variant av array för att få samma resultat...
For som det verkade så går det ju inte att ändra storleken på arrayen mer än den sista...För det kan teoretiskt sett vara mer än 100 bilder och 100 punkter i varje bild...
Och mindre med för den delen...Sv: Spara och läsa en ARRAY till/från fill?
Är det bara att göra en array med arrayer...
Hm... tar om det..
Kan man göra så här?
Dim Punkter(10) as StrucktPoint
Dim Scanner(4) as Punkter
Dim Bild(10) as Scanner
Kan man sedan gå in och ReDimma varje del?
Tex om Bild(1).Scanner(1) behöver mer än 10 punkter??Sv: Spara och läsa en ARRAY till/från fill?
Type StrucktPoint
X As Long
Y As Long
R As Byte
G As Byte
B As Byte
Res1 As Byte
Res2 As Byte
Res3 As Byte
Res4 As Byte
Intensity As Byte
RepeatPoint As Byte
End Type
Type StrucktScanner
Point(10) As StrucktPoint
End Type
Type StrucktPicture
Scanner(3) As StrucktScanner
End Type
Public Picture(10) As StrucktPicture
och det verkar funka.. Men om jag vill ändra hur många bilder det är i Arrayen?? Hur gör jag då?
Får inget att funka...Sv:Spara och läsa en ARRAY till/från fill?
Hur som helst ska det nu vara ganska enkelt att "redimma".
Du kör helt enkelt med:
Redim Preserve Pictures(1 to 20) As PictureSv: Spara och läsa en ARRAY till/från fill?
Men om jag vill Ändra antalet Punkter då??
Kan jag ändra dem med med Tex ReDim Point(100) as StructPoint?
Vid start har den ju:
Picture(10).Scanner(4).Point(10)
Om jag vill ändra till Point(100) Hur gör jag då?
Och om jag vill ändra till Picture(100)?Sv:Spara och läsa en ARRAY till/från fill?
<code>
Option Explicit
Private Type scanner
i() As Integer
End Type
Private Type benke
s() As scanner
End Type
Public Sub arne()
Dim be As benke
ReDim be.s(1 To 5) As scanner
ReDim be.s(1).i(1 To 5) As Integer
be.s(1).i(1) = 1
Dim sc As scanner
ReDim sc.i(1 To 10) As Integer
sc.i(1) = 5
End Sub
</code>Sv: Spara och läsa en ARRAY till/från fill?
Kan man säga att alla bilder alltid har 100 points
<b>För det kan teoretiskt sett vara mer än 100 bilder och 100 punkter i varje bild...
Och mindre med för den delen...</b>
Vi måste få fram en struktur som funkar på 1 bild.
Sedan angående ReDima blir ett senare problem.
Låt oss nu tänka i att fixa Array problemmet med Ok 2 bilder. 2 * 100
Kan jag tänka så här. Jag har 3 arrayer .
I ArrayBild fack 0 ligger bildens Id som jag vill processa.
I ArrayPoint fack 0 - 100 ligger bildens alla StructPoint
I ArrayScanner fack 0 ligger vilken scanner bilden kommer från Nr 0- 4
Är detta påstående korrekt ???
Sven som aldrig ger uppSv:Spara och läsa en ARRAY till/från fill?
Type StrucktPoint
X As Long
Y As Long
R As Byte
G As Byte
B As Byte
Res1 As Byte
Res2 As Byte
Res3 As Byte
Res4 As Byte
Intensity As Byte
RepeatPoint As Byte
End Type
Type StrucktScanner
Point(10) As StrucktPoint
End Type
Type StrucktPicture
Scanner(3) As StrucktScanner
End Type
Och Scanner kanske är lite missvisande...
I laservärlden kallas rithuvudet scanner...
Den flyttar strålen mellan X,Y punkter...
Så det är inget man läser in....Sv: Spara och läsa en ARRAY till/från fill?
Konfunderad innan Nu är jag ännu mer konfused.
Nu dyker det upp en Typ som heter StrucktScanner hur ser den ut ???
Blandar du inte ihop Typ Deklerationer med OutPutData Arrayer mmm.... konfused blir man.Sv:Spara och läsa en ARRAY till/från fill?
En animation är en sekvens av bilder för ett antal scanners. Lägger man upp det så här är det superlätt att redim:a allt, man behöver inte förutsätta någon maxgräns, och man får vettig kod. Jag har utöver detta gett kod som mer eller mindre går att använda rakt av, för tillägg av punkter och uppritning av dem.
Och jag förstår inte exakt vad problemet är?
Du har ju fått all kod för att ändra storlek på arrayerna.Sv: Spara och läsa en ARRAY till/från fill?
Ja ja Har en Typ Dekleration innästad i en annan.Det är ju klart helt Ok ,har jag aldrig gjort.
Ok då hoppar jag på det spåret också.Sv: Spara och läsa en ARRAY till/från fil?
Du skrev typ:
Redim Preserve be(1).s(1 to 5)
Jag när jag provade motsvarande så har jag skrivit:
ReDim Preserve be(1 to 5).s(1 to 5)
Då har jag ju fått att den redan är Dimensionerad.....
Till Ursprungsfrågan nu då...
Hur sparar jag ner en sådan array som det kan vara olika antal på?
Eller måste jag spara ner alla antal med?Sv:Spara och läsa en ARRAY till/från fil?
be(1 to 5)
och sen
be(1).s(1 to 5)
be(2).s(1 to 5)
be(3).s(1 to 5)
...
Men med tanke på hur du har beskrivit problemet är det nog så du skulle göra ändå.
<b>>Hur sparar jag ner en sådan array som det kan vara olika antal på?
>Eller måste jag spara ner alla antal med?</b>
Alltså, det här är ju en mer generell fråga. I huvudsak finns det två sätt:
1. Berätta inte hur många element det finns, utan säg dem en efter en tills du får reda på att det inte är fler. Typ
Scanner1:
Bild1, x, y, z ...
Bild2, x, y, z ...
...
Bildn, x, y, z ...
Scanner2:
...
eller
2. Berätta hur många element du har, först.
Scanner1, 7 bilder:
Bild1, x, y, z ...
Bild2, x, y, z ...
...
Bild7, x, y, z ...
Scanner2, 9 bilder:
...
Hur du gör är upp till dig, vad du tycker är lättast att göra. Det första kan ju inte bli "strukturellt fel", men det kan det andra (det kan stå fel antal), men det är ofta lättare att hantera information som man vet exakt hur den kommer se ut i förväg, så det andra alternativet är i princip lättare.Sv: Spara och läsa en ARRAY till/från fil?