Karakterek beszúrása probléma delphiben, van rá megoldás?
A segítségeteket szeretném kérni,mert elakadtam benne. Olyan progit kell írnom,ami két db számérték beírásakor, azaz 122 esetén egy "-" jelet ír a textboxba egy enter lenyomása után, 123 esetén pedig "+" jelet és ezt ismételgeti így a végtelenségbe, ebben a formában pl:
122-123+122-123+122-123+122-123+ stb...
vagy
123+122-123+122-123+122-123+122-123+ stb...
3 számjegyig sikerült megoldanom,de aztán sajnos rendesen elakadtam és bele is fáradtam sajnos.Azt feltételezem,hogy biztos nem lehet azért ördöngösség megoldani,de jelenleg fogalmam nincs miképpen lehetséges és mit hagytam figyelmen kívül.Az én megoldásom biztosan pocsék, ezért szeretném kérni hogy segítsetek benne,mert elfogyott a türelmem vele szórakozni.:))
Előre is köszi!
Az eddigi próbálkozásom:
unit karakterbeszur;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
var s:string;
implementation
{$R *.dfm}
function RepeatString(const s: string; count: cardinal): string;
var i:integer;
begin
for i := 1 to count do
Result := Result + s;
end;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var x:integer;
var y:integer;
begin
if key=#13 then begin
x:=length(edit1.text)+2;
y:=length(edit1.text)-2;
{x:=edit1.SelStart+2;
y:=edit1.selstart-2;}
if pos('123',edit1.text)>0 then begin
edit1.selText:=repeatstring('+',1);
s:=edit1.text;
delete(s,x+y,1);
edit1.Text:=s;
edit1.SelStart:=x-y div 4;
end;
if pos('122',edit1.text)>0 then begin
edit1.selText:=repeatstring('-',1);
s:=edit1.text;
delete(s,x-1,1);
edit1.Text:=s;
edit1.SelStart:=y+x * 4;
end;
end;
end;
Az lehet hogy "iskolai feladat szaga van" de idézem a kérdezőt
")) Amikor én még elkezdtem basicezni,akkor javából ment még a TV Basic is.Az volt régen meg a kukoricaszüret.:))"
Szerinted milyen iskolába kellene ez neki,az élet iskolájába,vagy a gyerekét tanítja pascalozni éppen,mikor még ő sem vágja témát annyira?? :-D
Ha nem feladat a középpont hanem a végeredmény akkor ezt a feladatot nem így oldják meg mert 2 szám lehet csak.
1.) Minek gépeljen már az ember, ha felfele nyilat nyomsz beíródik a 123, lefele nyílnál pedig 122.
2.) xxxyyyxxxy, x cseréli 123-ra, y cseréli 122-re.
SimkoL, ez Delphiben, hogy néz ki? (x és y cserélése).
std::string s = "xyyxyxxyx";
for (std::string::size_type found; (found = s.find_first_of("xy")) != std::string::npos;)
{
switch (s[found])
{
case 'x':
s.replace(found, 1, "123+");
break;
case 'y':
s.replace(found, 1, "122-");
break;
}
}
Egyem a csöpp kis okos fejeteket! :D de mondok nektek még egy ennél is jobbat és ez lesz a következő feladat.
1. Kerüljön úgy 123 a beírómezőbe, hogy nem a vágólapról, nem a billentyűzetről, hanem egy random generált videokártya órajeléből választja ki a gép rekurzív kereséssel. Addig keres milliónyi szám közül, amíg 123-at, vagy 122-öt nem talál.
2. Majd automatikusan minden bevitel nélkül rögtönözzön sztochasztikusan egy entert utána
3. Írja ki a végeredményt ugyanoda a beírómezőbe és küldje ki az északi-sark irányába, vagy a déli-sark irányába, a pólusnak megfelelően természetesen, egy repsávra AM adásmódba, ami 122.000 és 123.000 MHz-en üzemel, mindezt egy 122 és 123 Hz-es és az adott értékek körfrekis hangjelével ismételgetve az éterben.
Na elég testhezálló feladat?
"random generált videokártya"
Akkor ezért adnak ki ennyi videokártyát.
Hihetetlen vannak akik figyelnek. :))
"random" generált jelet,a videókártya órajeléből.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!