Gamestudio Links
Zorro Links
Newest Posts
How to Change Multiplier
by vicknick. 06/02/23 03:27
How to buy tomorrow at open?
by vicknick. 06/02/23 03:19
Adding Position to Current Trade
by vicknick. 06/02/23 03:09
Unable to change multiplier of contract
by vicknick. 05/30/23 06:56
Wrong Definition of Sharpe Ratio in Zorro?
by vicknick. 05/29/23 06:32
Backtest strategy on bitcoin/crypto
by JamesHH. 05/26/23 04:36
AUM Magazine
Latest Screens
SHADOW (2014)
DEAD TASTE
Tactics of World War I
Hecknex World
Who's Online Now
3 registered members (vicknick, 7th_zorro, Quad), 990 guests, and 12 spiders.
Key: Admin, Global Mod, Mod
Newest Members
BInnacle, androsa, XquicksnowX, danishinvest, Trail
18942 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Meine kleine Konsole #407841
09/19/12 21:55
09/19/12 21:55
Joined: Oct 2008
Posts: 341
R
ratz Offline OP
Senior Member
ratz  Offline OP
Senior Member
R

Joined: Oct 2008
Posts: 341
Hallo

Sicherlich haben sich viele schon gefragt, wie man
eine Eingabe mit Abfrage programmiert

Ich schreibe gerde an einer kleinen Konsole mit eingabefunction.
das ganze laüft auch so weit
aber das Problem dabei ist dass ich nur 1 String abfragen kann:

es tuts nur wenn ich testb eingebe

Frage: WARUM nur ein string und wie bekomme ich nach eingabe
den String (input) wieder sauber ??
str_cpy(input,"") lässt die Input nur blinken ...

hier der Code: ->

ich hoffe er gefällt euch :-)

Code:
STRING* input = "#80";

STRING* text_a = "testa";

STRING* text_b = "testb";



//////////////////////////////////////

TEXT* def_ctxt = 
{ 

string("",input); 
layer = 999; 
}

///////////////////////////

TEXT* show_txt = 
{ 
pos_x = 100;
pos_y = 100;
flags = SHOW;
layer = 999; 
}

///////////////////////////

void console() 
{
 toggle(def_ctxt,SHOW);
   
 while is(def_ctxt,SHOW) 
 {	
  inkey((def_ctxt->pstring)[1]); // write ... 
  
  //input a //
  if (str_cmp(input,text_a))    
  {
   (show_txt.pstring)[0] = "Input A Okey";
  }
  
  //input b //
  if (str_cmp(input,text_b))    
  {
   (show_txt.pstring)[0] = "Input B Okey";
  }
  
  else 
  {
   (show_txt.pstring)[0] = "Error";
  }
  
 }
}



function main()
{
 console(); // start console

}


Re: Meine kleine Konsole [Re: ratz] #407843
09/19/12 23:21
09/19/12 23:21
Joined: Feb 2005
Posts: 3,687
Hessen, Germany
T
Tempelbauer Offline
Expert
Tempelbauer  Offline
Expert
T

Joined: Feb 2005
Posts: 3,687
Hessen, Germany
Flüchtigkeitsfehler ^^

Du hast eine if und eine if-else Verzweigung. die if-else überschreibt IMMER deinen string den du in der ersten if möglicherweise geändert hast (deswegen kommst du nie auf "Input A Okey"). füge einfach noch ein else ein:

Code:
inkey((def_ctxt->pstring)[1]); // write ... 
  
  //input a //
  if (str_cmp(input,text_a))    
  {
   (show_txt.pstring)[0] = "Input A Okey";
  }

   else

  //input b //
  if (str_cmp(input,text_b))    
  {
   (show_txt.pstring)[0] = "Input B Okey";
  }
  
  else 
  {
   (show_txt.pstring)[0] = "Error";
  }



Falls es dich interessiert: http://www.opserver.de/ubb7/ubbthreads.php?ubb=showflat&Main=46718&Number=397621
Vielleicht kannst dus brauchen oder dir für deine Konsole was abschauen

Quote:
str_cpy(input,"") lässt die Input nur blinken ...

str_cpy kopiert string2 in string1. string1 hat dann die Länge 0. Und da du 0 Platz hast kannst du auch 0 Zeichen per inkey eintippen. für den eingabestring würde ich einen größeren puffer verwenden (kann man z.B. mit Leerzeichen auffüllen) und mir die eingabe dann (zur weiterverarbeitung) per str_cpy in einen neuen string kopieren und bei diesem mit str_trim (siehe strio.c) die überschüssigen whitespaces entfernen

Last edited by Tempelbauer; 09/19/12 23:34.
Re: Meine kleine Konsole [Re: Tempelbauer] #407895
09/20/12 15:11
09/20/12 15:11
Joined: Oct 2008
Posts: 341
R
ratz Offline OP
Senior Member
ratz  Offline OP
Senior Member
R

Joined: Oct 2008
Posts: 341
O.o DANKE !!!!!! ES FUNKTIONIERT XD

kanst du mir das nochmal mit den löschen des Strings anhand eines codes zeigen ?
were super nett

Re: Meine kleine Konsole [Re: ratz] #407902
09/20/12 20:38
09/20/12 20:38
Joined: Feb 2005
Posts: 3,687
Hessen, Germany
T
Tempelbauer Offline
Expert
Tempelbauer  Offline
Expert
T

Joined: Feb 2005
Posts: 3,687
Hessen, Germany
am einfachsten ist
Code:
str_cpy(input,"                                               ");


als letzte anweisung in der while


Moderated by  HeelX, Lukas, rayp, Rei_Ayanami, Superku, Tobias, TWO, VeT 

Gamestudio download | chip programmers | Zorro platform | shop | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de

Powered by UBB.threads™ PHP Forum Software 7.7.1