TartalomFriss hozzászólások
Új fórum témákAktív fórum témákGoogle hirdetések |
Ini Fájlok kezelése, fájlon belűli adatkeresés
vari, 2009, október 12 - 11:09
Sziasztok! Egy probléma miatt nyitottam ezt a témát. A probléma az lenne, hogy egy személyre vonatkozó számszerű adatokat kellene tárolni egy INI fájlban, és utánna ezeket összesíteni. Konkrétan ez egy óvodai program, ahol gyerekek különleges adatait kell tárolni, ílyen módon: [azonosito_vezeteknev_keresztnev] Ezeket az adatokat kellene osszesíteni úgy h. Ha valaki tudna segíteni azt nagyon megköszönném. »
|
KeresésBelépésIndex TechPC FórumOrigo TechbázisSG.hu |
* DeleteKey *
* DeleteKey
* EraseSection
* ReadBinaryStream
* ReadBool
* ReadDate
* ReadDateTime
* ReadFloat
* ReadSection
* ReadSections
* ReadBinaryStream
* ReadSectionValues
* ReadTime
* SectionExists
* WriteBinaryStream
* WriteBool
* WriteDate
* WriteDateTime
* WriteFloat
* WriteTime
* UpdateFile
* ValueExists
Ezek a TIniFile osztály eljárásai ebből neked kellhet a Read Sections amely visszadja a szekciók [az_veznev_kernev] listáját, A ReadSection peddig a tartalmát pontosabban a külcsokat pl: fizetos,ebedes...stb.
és ugyan rég használtam de vagy van még egy readstring vagy pedig a readsectionvalues-al ki tod olvasni a kulcshoz tartozó értéket. ha szöveges. a Read(típus pl:int,float...) pedig megfelelő típusba olvassa ki ugyenezeket az értékeket.
Használata. uses inifiles;
var ini:Tinifile;
ini:=tinifile.create('c:\test.ini');de a többit ki lehet olvasni a súgóból. na csá.
Bocsi az stílusomért ill annak hiányáért :D
Nem a témához vágóan csak megjegyzsé. Ha ez valóban egy afféle nyílvántarto progi akkor ajánlom hogy az adatokkal vigyáz. ha az adatok titkosítattlan és egyszer vki megsasolja akkor bajba kerülhet az ember mert elvileg a kisebbségi adatokat nem lehet tárolni. Emiat se statisztikai vagy hasonló adatokat is csak beleegyezéssel tárolhatunk. (tudomásom szerint)
Forrás:http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=568&lngWId=7
,,Mondottam ember: Küzdj és bízva bízzál"
"Ha ez valóban egy afféle
"Ha ez valóban egy afféle nyílvántarto progi akkor ajánlom hogy az adatokkal vigyáz. ha az adatok titkosítattlan és egyszer vki megsasolja akkor bajba kerülhet az ember mert elvileg a kisebbségi adatokat nem lehet tárolni. Emiat se statisztikai vagy hasonló adatokat is csak beleegyezéssel tárolhatunk"
Igen ez így van, és ha beleegyezik, akkor is vigyázni kell, hogy illetéktelenek ne férjenek hozzá. Illetve az is egy lehetséges megoldás, hogy az ini fájlban nem úgy nevezed meg, hogy kisebbsegi=1, hanem pl.: adat12=1
így:
if pos('adat12=1',memo1.Lines[i])<>0 then
begin kissebbseg:=kissebbseg+1 end;
Akkor ha a progit jelszóval véded, és csak a programban rendelődik hozzá a kisebbségi jelző, akkor az ini fájl értelmezhetetlen lesz másnak, legalábbis nem tartalmaz konkrétan felhasználható adatot más számára. Sőt, ha a nevek karaktereit pl számokkal helyetesíted, úgy hogy a progi vissza tudja alakítani karakterekké, akkor még név sem szerepel az ini fájlban.
Üdv.: Totó
Ami kimaradt :P
Még annyit szeretnék hozzátenni, hogy esetleg ha valaki annyit is tudna segíteni h. h. lehet az INI fájlon belűli Szekciókat kííratni, vagy bizonyos szekcíón belűli kulcsokra rákeresni az is elég lenne.
pl. egy listboxba kilistázni a szekciókat, egy timer-el léptetni a sorokat, és kijelölés hatására ha egy adott kulcson belűl 1es van akkor egy spinedit-hez ad +1 -et.
Nem kell profi megoldás elég ha sima "konyhai" módon lehet megoldani.
Még 1x köszönöm azoknak akik segítenek majd.
Szia!Nagyon konyhai
Szia!
Nagyon "konyhai" módon:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
Button2: TButton;
OpenDialog1: TOpenDialog;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
egyeni_fejlesztes,logopedia,sni,tizorai,tizoraiebed,tizoraiebeduzsonna,
veszelyeztetett,kissebbseg,ingyenes,kedvezmeny,fizetos:integer;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
if opendialog1.Execute then
memo1.Lines.LoadFromFile(opendialog1.FileName);
end;
procedure TForm1.Button2Click(Sender: TObject);
var i:integer;
begin
for i:=0 to memo1.Lines.Count do
begin
if pos('egyeni_fejlesztes=1',memo1.Lines[i])<>0 then
begin egyeni_fejlesztes:=egyeni_fejlesztes+1 end;
if pos('logopedia=1',memo1.Lines[i])<>0 then
begin logopedia:=logopedia+1 end;
if pos('sni=1',memo1.Lines[i])<>0 then
begin sni:=sni+1 end;
if pos('tizorai=1',memo1.Lines[i])<>0 then
begin tizorai:=tizorai+1 end;
if pos('tizoraiebed=1',memo1.Lines[i])<>0 then
begin tizoraiebed:=tizoraiebed+1 end;
if pos('tizoraiebeduzsonna=1',memo1.Lines[i])<>0 then
begin tizoraiebeduzsonna:=tizoraiebeduzsonna+1 end;
if pos('veszelyeztetett=1',memo1.Lines[i])<>0 then
begin veszelyeztetett:=veszelyeztetett+1 end;
if pos('kissebbseg=1',memo1.Lines[i])<>0 then
begin kissebbseg:=kissebbseg+1 end;
if pos('ingyenes=1',memo1.Lines[i])<>0 then
begin ingyenes:=ingyenes+1 end;
if pos('kedvezmeny=1',memo1.Lines[i])<>0 then
begin kedvezmeny:=kedvezmeny+1 end;
if pos('fizetos=1',memo1.Lines[i])<>0 then
begin fizetos:=fizetos+1 end;
end;Showmessage('sni: '+inttostr(sni));
end;
end.
Üdv.: Totó
Köszönöm
Köszi szépen! Sokat segítettél, ebből már tudom tovább csinálni.