Delphi
Jelentkezz be a hozzászóláshoz.
if s='X'...
sorokat próbáld ki így is:
if upperstr(s)='X'...
Ha így sem megy, küldd el mailben a teljes projektet (összecsomagolva), meg a mintafájlt és alaposabban megnézem.
Lenne 1 új kérdés 😊
Van 1 Quiz ami a kérdéseket 1 txt-bõl olvassa be tömbönként 1 tömb = 5 sor. (5 sor = 1 kérdés 3 lehetséges válasz + 1 x)
íme a forrás:
unit Qiuz;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
const Path = 'C:\Quiz.txt';
type
TForm5 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Button1: TButton;
Button2: TButton;
Button3: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form5: TForm5;
lepes: integer;
M: integer;
implementation
{$R *.dfm}
procedure Kovetkezo;
Var F: TextFile;
S: String;
i: integer;
begin
AssignFile(F,PAth);
{$I-}Reset(f);{$I+}
if IOresult<>0 then ;
inc(lepes);
if lepes-1=m then halt;
for i:=1 to lepes-1 do
begin
readln(f,s);
readln(f,s);
readln(f,s);
readln(f,s);
readln(f,s);
end;
readln(f,s);form5.label1.Caption:=s;
readln(f,s);
if S='X' then begin
form5.button1.tag:=1;
ReadLn(F,s);
form5.button1.Caption:=s;
end
else
begin
form5.button1.tag:=0;
form5.button1.Caption:=s;
end;
readln(f,s);
if S='X' then begin
form5.button2.tag:=1;
ReadLn(F,s);
form5.button2.Caption:=s;
end
else
begin
form5.button2.tag:=0;
form5.button2.Caption:=s;
end;
readln(f,s);
if S='X' then begin
form5.button3.tag:=1;
ReadLn(F,s);
form5.button3.Caption:=s;
end
else
begin
form5.button3.tag:=0;
form5.button3.Caption:=s;
end;
CloseFile(F);
end;
procedure TForm5.FormCreate(Sender: TObject);
var F: TextFile;
S: String;
begin
m:=0;
AssignFile(F,Path);Reset(F);
while not Eof(f) do
begin
readln(f,s);
readln(f,s);
readln(f,s);
readln(f,s);
readln(f,s);
inc(m);
end;
CloseFile(f);
lepes:=0;
kovetkezo;
end;
procedure TForm5.Button1Click(Sender: TObject);
begin
if Button1.Tag=1 then Label2.Caption:='Jó válasz!' else
Label2.Caption:='rossz válasz!';
Kovetkezo;
end;
procedure TForm5.Button2Click(Sender: TObject);
begin
if Button2.Tag=1 then Label2.Caption:='Jó válasz!' else
Label2.Caption:='rossz válasz!';
Kovetkezo;
end;
procedure TForm5.Button3Click(Sender: TObject);
begin
if Button3.Tag=1 then Label2.Caption:='Jó válasz!' else
Label2.Caption:='rossz válasz!';
Kovetkezo;
end;
end.
És az lenne a gondom, hogy nicnsen olyan mint jó válasz :/.. az x utáni vagy elõtti sor lenne a helyes megoldás ha jól emléxem és az x-et figyelmen kívûl kéne hagynia de nem teszi hanem 1 lehetséges megoldásnak tekinti.
Ha pedig mögé helyezem akkor az x-et akkor a 3 választási lehetõség megvan de nincsen helyes válasz továbbra sem.
Üdv és thx ha valakinek beugrik az a rész ahol gond van.
...:Dream as if you\'ll live forever, Live as if you\'ll die today:... ICQ: 313-755-340
"port" parancs nincs helyette?
*hihi ** *
Begin
ASM
Mov Ax,255
Mov Dx,$378
Out Dx,Ax
End;
End;
Mindíg az out parancsnál ál meg, de ha in van akor is ez a probléma.
Ugyanezt csinálja minden porttal.
AF27
...:Dream as if you\'ll live forever, Live as if you\'ll die today:... ICQ: 313-755-340
Bmp, jpg kép mentése Dbase Blob mezõbe
Delphi + Mysql + Jpg
JPG kép kiolvasása adatbázisból
JPG DBImage-ben
-Újra itt 1 új kérdéssel.
Szakgolgozatom témája 1 biosz-os program és az élõlényekhez szeretnék képet rendelni.
Namármost a jpeg.-formátumot nem tudtuk mególdani, az a probléma, hogy nem tudom beépíteni õket az adatbázisba a bmp-k mérete meg húzós tehát nem célszerû.
Ha valaki tudna javasólni valamit azt megköszöm 😊
Üdv
...:Dream as if you\'ll live forever, Live as if you\'ll die today:... ICQ: 313-755-340
osszmeret:=0;
for i:=0 to listbox2.items.count-1 do begin
assignfile(f, listbox2.items[ i]);
{$I-} reset(f, 1); {$I+}
if ioresult=0 then begin
inc(osszmeret, filesize(f)); closefile(f);
end else begin
// hiba volt
...
end;
end;
Az elõzõ kódban pár dolgot elgépeltem, de azt majd kijavítod. 😊
A második try..finally blokk emiatt nem is kell, az összméret számlálást emeld át az elsõ try-be és akkor a hibasfajl kezelése is elhagyható. Pl. így:
osszemeret:=0;
for i:=0 to listbox2.items.count-1 do
try
assignfile(f, listbox.items[ i]); reset(f, 1); inc(osszmeret, filesize(f)); closefile(f);
except
// fájl megnyitás nem sikerült, ide jöhetnek mindenféle hibakezelõ részek
...
end;
Jut eszembe: ha nem típusos fájlt nyitsz meg, a Reset()-nél kell a blokkméret is, ellenkezõ esetben az alapértelmezés 128 bájtos, így a FileSize() is azt adja vissza, hány 128 bájtos blokkból áll a fájl.
for i:=0 to ListBox2.Items.Count-1 do
begin
hibasfajl:=false;
try
AssignFile(f,Listbox2.Items[ i]);
Reset(f);
...
finally
hibasfajl:=true;
end;
if hibasfajl=false then begin
try
..
osszmeret:=osszmeret+Filesize(f);
CloseFile(f);
finally
end; end;
[/center]
a fájlok egy részét sikerül megnyitnia, viszont másoknál invalid filaname-t ír😞 nem tetszik neki a 91 karakteres elérési út?? ááá nemértem.
másrészt meg a Filesize -os blokkot nem hatja végre, mi lehet a baja??
*hihi ** *
...:Dream as if you\'ll live forever, Live as if you\'ll die today:... ICQ: 313-755-340
...:Dream as if you\'ll live forever, Live as if you\'ll die today:... ICQ: 313-755-340
Ha nem ezt kérdezted, akkor passz, írd jobban körbe. 😊
De ha nagyon kell, megnézem neked, hogy pontosan mi kell hozzá (most lusta vagyok elõkeresni, fejbõl meg nem tudom 😊 ).
Bár a Delphi-nek van erre funkciója is: Database Manager. Ezzel lehet pár beépített típusú adatbázist létrehozni, amelyek nem szerverek ugyan (mivel azt a funkciót ez esetben tkp. a BDE látja el), de szinte mindent ki lehet próbálgatni rajtuk. Az alap SQL funkciókat (create, insert, delete, select, ...) bármely alaptípus ismeri.
Tehát még nem hálózatban hanem csak 1 gépen szeretnék sql-ezni delphi-ben.
kaptam 1 ilyet: appserv azt reméltem ezzel tudok 1 stand alone server-t csinálni de nem jött össze valmiért :/
Az lenne a gondom, hogy nincs hova csatlakozni.. és a gépemen szeretnék 1 sql server-t üzemeltetni, hogy legyen 😉
Greetings
...:Dream as if you\'ll live forever, Live as if you\'ll die today:... ICQ: 313-755-340
kivételként kiíratom üzenetként hogy milyen nevû fájlt nem tud megnyitni, és ott tökéletes a neve 😞
hmm talán így látni is fogjuk:
// atw rõl így linkelj:
http://users.atw.hu/felhasználónév/kép.jpg
*hihi ** *
Amúgy ezt 1 másik prog-ból lestem el és reménykedem, hogy nálam is beválik..
ha nem jelenne meg a kép : http://www.les.atw.hu/sample/sample.JPG
Köszi mindent !!
üdv
...:Dream as if you\'ll live forever, Live as if you\'ll die today:... ICQ: 313-755-340
ListBox ban vannak elérési útvonalak, fájlok pontos neveivel.
de
AssignFile(f,Listbox2.Items.Strings[ i]);
mindegyik hozzárendelésnél hibár ít ki 😞
ékezet nélküli, space nélküli létezõ fájlok..
*hihi ** *
(delphi 6)
begin
ShellAbout(Handle, 'Biosoft v Beta 0.4', 'Les', Application.Icon.Handle);
end;
Thx
ps. nem rég kezdtem tehát még nagyon lama vagyok 😊
...:Dream as if you\'ll live forever, Live as if you\'ll die today:... ICQ: 313-755-340
hogy lehet fájl tipushoz hozzárendelt programot elérni?
DDE kommunikációról tudnál írni?
*hihi ** *
procedure TForm1.Save1Click(Sender: TObject);
var
NewFileName: string;
Msg: string;
NewFile: TFileStream;
OldFile: TFileStream;
begin
NewFileName := ExtractFilePath(Application.ExeName) + ExtractFileName(Edit1.Text);
Msg := Format('Copy %s to %s?',
if MessageDlg(Msg, mtCustom, mbOKCancel, 0) = mrOK then
begin
OldFile := TFileStream.Create(Edit1.Text, fmOpenRead or fmShareDenyWrite);
try
NewFile := TFileStream.Create(NewFileName, fmCreate or fmShareDenyRead);
try
NewFile.CopyFrom(OldFile, OldFile.Size);
finally
FreeAndNil(NewFile);
end;
finally
FreeAndNil(OldFile);
end;
end;
end;
*hihi ** *
Egyébként ilyen másolásos dolgokra az SHFileOperation() WinAPI függvény is használható, bár ennek a kezelése bonyolultabb. Parancssor hívására meg a CreateProcess() (is) használatos.
pl. System("copy %src %dst")
ilyesmi kéne pl. fájlmásoláshoz..
vagy egyszerûbb saját rutint írni rá blockread-,blockwrite-al?
*hihi ** *
2. nem nagyítani akarok, csak az a probléma ha nagyobbra méretezem akkor sem rajzol arra a területre, amit a nagyobbra méretezéssel nyertem
2. A ReSize nem egyenlõ a ReScale-el, azaz ha átméretezel valamit, az nem gayítja fel a dolgokat. Ha pl. egy TImage-t méretezel, akkor nõ a hozzá tartozó Canvas szélessége és magassága is, de ez nem nagyítást jelent. Közvetlen nagyító parancs sincs, ezt is neked kell megírnod.
kisebbik, ha program futása közben átméretezem az ablakot hogy lehet egy utasítással azt a képernyõ közepére tenni ? (mint futtatás elõtt Position-poScreenCenter)
nagyobbik probléma, van egy TImage objektum, futás közben a program rajzol rá stb. de ha nagyobbra méretezem az objectumot, akkor is csak az eredeti méret területén tudok rá rajzolni. miért nem méretezi át rendesen ?
kössz a helpet
Adott egy prog amit delphiben írtam!!!
Na most azt szeretném ha lebírnám tiltani a Ctrl+Alt+Del billentyûket
Azért hogy ne lehessen így kilépni.
Megoldható???
REAL MADRID
😊
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Memo1: TMemo;
Button3: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Button4: TButton;
Edit5: TEdit;
Button5: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
type szemrec=record
nev,cim,mhely:string<20>20>;
ber:longint;
end;
procedure TForm1.Button1Click(Sender: TObject);
var f:file of szemrec;
t:textfile;
st,smhely,sber,snev,scim:string;
k:integer;
rec:szemrec;
begin
assignfile(t,'d:\delphi\roland\feladat\szöveges.txt');
reset(t);
assignfile(f,'d:\delphi\roland\feladat\tipusos.dat');
rewrite(f);
while not eof(t) do
begin
readln(t,st);
k:=pos('&',st);
snev:=copy(st,1,k-1);
delete(st,1,k);
end;
begin
k:=pos('&',st);
scim:=copy(st,1,k-1);
delete(st,1,k);
end;
begin
k:=pos('&',st);
smhely:=copy(st,1,k-1);
delete(st,1,k);
end;
begin
sber:=copy(st,1,length(st));
end;
begin
rec.nev:=snev;
rec.cim:=scim;
rec.mhely:=smhely;
rec.ber:=strtoint(sber);
write(f,rec);
end;
closefile(t);
closefile(f);
end;
procedure TForm1.Button2Click(Sender: TObject);
var t:file of szemrec;
rec:szemrec;
begin
assignfile(t,'d:\delphi\roland\feladat\tipusos.dat');
reset(t);
while not eof(t) do
begin
read(t,rec);
memo1.lines.add(rec.nev+' '+rec.cim+' '+rec.mhely+' '+inttostr(rec.ber));
end;
closefile(t);
end;
procedure TForm1.Button3Click(Sender: TObject);
var t:file of szemrec;
rec:szemrec;
begin
assignfile(t,'d:\delphi\roland\feladat\tipusos.dat');
reset(t);
seek(t,filesize(t));
rec.nev:=edit1.text;
rec.cim:=edit2.text;
rec.mhely:=edit3.text;
rec.ber:=strtoint(edit4.text);
write(t,rec);
closefile(t);
end;
procedure TForm1.Button4Click(Sender: TObject);
var t:file of szemrec;
rec:szemrec;
kernev:string;
begin
assignfile(t,'d:\delphi\roland\feladat\tipusos.dat');
reset(t);
kernev:=edit5.text;
while not eof(t) and (kernev<>rec.nev) do
begin
read(t,rec);
truncate(t);
end;
closefile(t);
end;
procedure TForm1.Button5Click(Sender: TObject);
var t:file of szemrec;
rec:szemrec;
g:textfile;
stnev,stcim,stmhely:string❤️0>30>;
stber:longint;
begin
assignfile(t,'d:\delphi\roland\feladat\tipusos.dat');
reset(t);
assignfile(g,'d:\delphi\roland\feladat\szoveg.txt);
rewrite(g);
begin
while not eof(t) do
begin
read(t,rec);
stnev:=rec.nev;
stcim:=rec.cim;
stmhely:=rec.mhely;
stber:=rec.ber;
begin
writeln(t,stnev);
writeln(t,stcim);
writeln(t,stmhely);
writeln(t,stber);
end;
closefile(t);
closefile(g);
end;
end.
szükségem lenne egy kis segítségre, van egy feladat amiben egy típusos fájlt kell átraknom szöveges fájlba. A típusos fájlnak a rekordjai:nev,cím,ber,mhely.
hogy lehet ezt megcsinálni??
osszeg:=0;
utolso:=2;
while osszeg<keresett_szam do begin
osszeg:=osszeg+utolso;
utolso:=utolso+2;
end;
utolso:=utolso-2;
Adja össze a páros számokat addig még az összege eléri az editboxba írt számot. Írassa ki az összeget és azt hogy melyik volt az utolsó szám.