Poslední příspěvky

Stran: [1] 2 3 ... 10
1
Obecné / Re:Přístup k datům v souborech
« Poslední příspěvek od Faltynek kdy Dnes v 12:47:00 »
Díky díky, s tím se dá něco podniknout.
Dalibor.
2
Obecné / Re:Přístup k datům v souborech
« Poslední příspěvek od Radek Červinka kdy Dnes v 11:34:16 »
Jen pro doplnění, novější Delphi mají http://docwiki.embarcadero.com/Libraries/Rio/en/System.Classes.TBufferedFileStream, nevím přesně od které verze, ale asi Berlin.
3
Obecné / Re:Přístup k datům v souborech
« Poslední příspěvek od vandrovnik kdy Dnes v 11:00:51 »
Kód: [Vybrat]
fs.Seek(5*sizeof(TMrec), soBeginning);
fs.Position:=7*sizeof(TMrec);
fs.Read(mrecpole[10], sizeof(mrecpole[10])); // nacte jeden zaznam
fs.Read(mrecpole[0], 30*sizeof(mrecpole[0])); // nacte 30 zaznamu najednou

Píšu to bez Delphi, tak se předem omlouvám za případné chybky.
4
Obecné / Re:Přístup k datům v souborech
« Poslední příspěvek od Faltynek kdy Dnes v 10:50:59 »
Citace
var
  fs: TFileStream;
  i: integer;
  v: byte;
  start: LongWord;

begin
  start := GetTickCount;
  fs := TFileStream.Create('C:\test.txt', fmOpenWrite or fmCreate);
  v := 65;
  try
    fs.Seek(0, soBeginning);
    for i := 0 to 10000000 do
    begin
      fs.WriteBuffer(v, SizeOf(v));
    end;
  finally
    fs.Free;
  end;
  Writeln(IntToStr(GetTickCount - start));
 
var
 
Našel jsem mimo jiné tento příklad na použití Tfilestreamu. Ale ve všech příkladech jsem vždycky viděl jenom použití na textové soubory nebo binární soubory se čtením po bytech.
Dá se to modifikovat na rekordy viz deklarace v prvním dotazu? Myslím pokud deklaruji "V" v příkladu ne jako byte ale jako rekord? A pak seekem skáket po rekordech?
Nebo to musím načíst po bytech do bufferu a pak si to sekat přes pointry do proměných potřebného typu? To by by bylo dost zklamání.

Dalibor.
5
Obecné / Re:Přístup k datům v souborech
« Poslední příspěvek od Faltynek kdy Dnes v 09:05:10 »
Díky všem, pokusím se dovzdělat.
Dalibor.
6
Obecné / Lazarus na raspbian-buster raspi 4
« Poslední příspěvek od BigSandy kdy Dnes v 08:56:23 »
Zdravím.
Nainstaloval jsem si Lazarus.
sudo apt-get install fpc && sudo apt-get install lazarus.
Když chci doinstalovat nějake baličky vyhodi to chybu.
lazarus.pp(1,1) Fatal: Nelze najít fpdebug
https://forum.lazarus.freepascal.org/index.php?topic=46244.0
OK so I had to make the swap file 1024 MB.
Nepomohlo.

jsem kouknul do install/uninstall packages a není nainstalovan.
Překopirují z dostupných do instalovat a dam uložit a znovu sestavit IDE a vyskoči to same.

Neporadí někdo?
7
Obecné / Re:Přístup k datům v souborech
« Poslední příspěvek od pepak kdy 21-08-2019, 21:04:56 »
- s databázemi už víc než 10 let neprogramuji, protože to vůbec není "timeresist" řešení na rozdíl od filů a nemám náladu pokud se nějaká hlava zase rozhodne že danou databázi "vylepší" to zase předělávat (viz dřív BDE).
To právě řeší embedded databáze, zvlášť pokud k nim použiješ nativní přístup.

Citace
- na měření jezdí kolegové se svými notebooky a musel bych instalovat všem sqlite nebo něco podobného (poslali by mě někam).
Tohle taky řeší embedded databáze. Možná si vyhledej v Googlu, co to je.

Citace
A kteréže to streamy umožňují náhodný přístup?
Přinejmenším TFileStream, TMemoryStream, TStringStream. Obecně skoro všechny založené na paměti a/nebo souborech, s výjimkou komprimovaných formátů.

Citace
Kód ví, kde se oblast zobrazených dat nachází v souboru, takže pokud přejde do další oblasti, kombinací seek a read načte při přechodu dalších x hodnot a nasází je do lines grafu.
No a s TFileStream můžeš udělat přesně totéž.
8
Obecné / Re:Přístup k datům v souborech
« Poslední příspěvek od vandrovnik kdy 21-08-2019, 20:18:13 »
TFileStream má Seek, takže třeba ten.

JaroB zmínil Direct2D - to dokáže vykreslit graf s několika sty hodnot během pár milisekund, takže by se trhání asi nemuselo moc řešit, prostě by se graf vykreslil při jakémkoliv posunu znovu. Pokud by část dat nebyla ještě načtená, šlo by jejich načítání dělat na pozadí a vykreslit nejdřív graf alespoň s částí dat, aby uživatel nekoukal na prázdné okénko, a jakmile by se třeba část těch chybějících dat načetla, vykreslil by se graf znovu.
9
Obecné / Re:Přístup k datům v souborech
« Poslední příspěvek od Faltynek kdy 21-08-2019, 20:10:49 »
Ahoj, díky za odpovědi.

ještě jsem nestihl projít ten odkaz, takže zatím jenom

Citace
Moderní alternativou jsou embedded databáze (např. SQlite). Ale můžeš klidně použít i ty streamy, řada z nich umožňuje náhodný přístup.
Jasně že databáze umožnuje náhodný přístup, ale databázi se chci vyhnout protože:
- s databázemi už víc než 10 let neprogramuji, protože to vůbec není "timeresist" řešení na rozdíl od filů a nemám náladu pokud se nějaká hlava zase rozhodne že danou databázi "vylepší" to zase předělávat (viz dřív BDE).
- na měření jezdí kolegové se svými notebooky a musel bych instalovat všem sqlite nebo něco podobného (poslali by mě někam).

A kteréže to streamy umožňují náhodný přístup?

Citace
Nepotrebujes to cist pokazde cele: delava se to kruhovym bufferem o velikosti, ktera odpovida poctu zobrazovanych hodnot a ktery na zacatku nactes a pak posouvas kruhovy ukazatel/index a docitas jen nova data a vykreslujes z kruhoveho bufferu od aktualni pozice ukazatele. 
Teď v grafu se zobrazenými x hodnotami mám čárkovaný kurzor rovnoběžný s osou y a když posunu některým směrem myš, tak mi kurzor skáče na delší nebo předchozí hdnotu a zobrazí hodnoty zobrazených dat v pozici kurzoru. Jak dojdu na okraj zobrazené oblasti načte se předchozích nebo následujících x hodnot do grafu. Asi to tak nechám, protože trhání bych asi neuměl vyřešit.
Kód ví, kde se oblast zobrazených dat nachází v souboru, takže pokud přejde do další oblasti, kombinací seek a read načte při přechodu dalších x hodnot a nasází je do lines grafu.
Mimichodem používám TeeChart.

Dalibor.



10
Obecné / Re:Přístup k datům v souborech
« Poslední příspěvek od JaroB kdy 21-08-2019, 19:20:23 »
Graf je možné vykreslovat pomocí back bufferu, což asi umožňuje i Direct2d. V nouzi se dá vystačit i se dvěma bmp ;-) a nic se trhat nebude.

Něco podobného jsem kdysi dělal, vypadalo to jako záznam z více kanálového seismografu, ale to bylo za pomoci DxFusion/FastDIB.
Stran: [1] 2 3 ... 10