Einzelnen Beitrag anzeigen

Benutzerbild von Grumble
Grumble

Registriert seit: 19. Mär 2003
Ort: Dresden
203 Beiträge
 
Delphi 6 Enterprise
 
#1

wie speicher sparen -> out of memory

  Alt 10. Aug 2004, 11:10
hi,

ich habe folgendes problem ...

ich soll eine textdatei auslesen und dort bestimmte werte in ein record schreiben, das sieht aber schon recht gross aus und wird auch noch in in dyn. array verpackt..

Code:
H=record
         Typ:string[2];
         RNr,PrArt,UArt,aHKl,mHKl,mTC,sTC,BildTC,Pvon,Pnach:shortint;
         UDAT,HBez,VSch,BSch:string[10];
         UOrt,STRN:string[30];
         UFirma:string[36];
         PrH,PrBr,PrNr:smallint;
         MAT:string[4];
         InSchutz,Zkrzl:string[7];
         UDir:string[1];
         ULang,Stat,MaxRB,ZkrzlZ1,ZkrzlZ2:real;
         VHSNr:string[3];
         hTC:integer;
         SMBez:string[5];
         BildDatBez:String[12];
        end;

      KKS=record
         Typ,DForm:string[2];
         RNr,LGD,HGD,Status,GForm,AAnschl,StEG,HGSchS:shortint;
         SchBez,altSchBez,Bem:string[10];
         Rwert,Hwert,DHSch,LD,BrD,LSch,BrSch,LSchUT,BrSchUT,HSchUT,SchS:real;
         BemLage:string[20];
         AbdKl,SchForm,SchHls,SchUTForm,EH,SchUpl,Abdpl:string[1];
         BJ:smallint;
         BSSchHls,BSSchOT,BSSchUT,BSG:string[4];
         InSchutz:String[7];
      end;

      KKH=record
         Typ,KnlArt:string[2];
         RNr,HGvSch,HGbSch,PrArt,Status,AbwArt,WSZ,BodArt,GrdWabst,NeigKl:shortint;
         HBez,altHBez,vSch,bSch:string[10];
         SHvSch,SHbSCH,HL,HFlges,HFlbef,HFlD,kSchmWZfl,kFrWZfl,kRWZfl,kGewZfl,kHZfl,kIZfl,kTrWZfl:real;
         PrH,PrBr,BJ:smallint;
         MAT:string[4];
         STRN:string[30];
         TEGNr:String[5];
      end;

      KKT=record
         Typ:string[2];
         RNr:shortint;
         EWD,WVbr,Stdm,FrWAn:real;
         TEGNr:String[5];
      end;

      HR=record
        Nr:integer;
        Typ:string[2];
        Vnr:string[4];
        Lbez,Lnr,ZB,EDat,Nu,Lknr,bDS:string[10];
        AZ,Bear,TAM:string[15];
        BANrmLK:string[5];
        txt:string[13];
        Htyp:array of H;
        KKStyp:array of KKS;
        KKHtyp:array of KKH;
        KKTtyp:array of KKT;
        end;

  IData=array of HR;
nun lese ich eine datei aus, filesize zeigt mir ca. 63000
nachdem ca. 5000 eingelesen worden sind krieg ich ne out of memory ... obwohl laut eines speichermenagers sogar noch 130 mb frei sind...
nun habe ich mir ueberlegt ob man evtl. die dateien splitten muss ...

habt ihr evtl. tips wie man wo speicher sparen kann? ich kann leider nicht vom record weg, ich wollte es erst sofort in ne datenbank schreiben, aber meine chefs wollen bloederweise n record
gruss
Grumble

... moege der code mit dir sein ...
  Mit Zitat antworten Zitat