Toon posts:

[JS]Commando als string probleem

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een beetje een vervelend probleem wat waarschijnlijk komt door gebrek aan kennis van javascript.
Ik probeer een commando mbv een for lus van getal te voorzien:
<FSTCI !3d0>
<FSTCI !3d1>
enz

Alleen krijg ik het nog niet voor elkaar... Ik heb al meerdere varianten geprobeert waaronder ook concat, maar het wil me gewoon niet lukken. Hieronder een voorbeeldje van wat er in mn for-lus staat.

code:
1
2
3
4
5
6
7
for(var stringnr=0; stringnr <= 5; stringnr++)
  {     
                var str1 = "<FSTCI !3d";
    var str2 = ""+stringnr+">";
    var tempstr = "\""+str1+str2+"\" ";
                stringArray[stringnr] = ""+tempstr;
  }


Het is dus eigenlijk de bedoeling dat tempstr de waarde wordt <FSTCI !3d0> opleverd. Heeft iemand een iedee wat ik verkeerd doe en hoe het wel moet? Met gewone strings plakt hij het wel mooi aan elkaar namelijk...

[ Voor 19% gewijzigd door Verwijderd op 28-02-2005 10:31 ]


  • Woudloper
  • Registratie: November 2001
  • Niet online

Woudloper

« - _ - »

Waarom heb je niet gewoon:
JavaScript:
1
vart tempstr = str1+str2;

Verwijderd

Topicstarter
Omdat het fstci commando een string op haald en die stuur ik naar een applet. als ik het op jouw manier doe dan pakt hij alleen het eerste woord 8)7

Verwijderd

Eerst de array als array definiëren.

JavaScript:
1
2
3
4
5
6
7
8
var stringArray = new Array();

for (var stringnr = 0; stringnr <= 5; stringnr++) {
    var str1 = "<FSTCI !3d";
    var str2 = "" + stringnr + ">";
    var tempstr = str1 + str2;
    stringArray[stringnr] = "" + tempstr;
}


Met Firefox kan je trouwens de JavaScript console gebruiken voor eventuele errors/warnings. Best handig, ook in dit geval weer.

[ Voor 27% gewijzigd door Verwijderd op 28-02-2005 10:50 ]


Verwijderd

Topicstarter
Ja die had ik wel gedefinieerd, ik heb slechts het probleem stuk van de source ge-quote hier. ik zal firefox wel ff installeren, maar ik vermoed dat hij geen suggesties gaat geven...

Verwijderd

Topicstarter
Woei firefox helpt idd wel! Het < teken veroorzaakt het probleem, maar hoe ik het op moet lossen ben ik nog niet uit...

Verwijderd

Verwijderd schreef op maandag 28 februari 2005 @ 11:04:
Woei firefox helpt idd wel! Het < teken veroorzaakt het probleem, maar hoe ik het op moet lossen ben ik nog niet uit...
maak er eens
code:
1
&lt;
(<) en
code:
1
&gt;
(>) van.

[ Voor 13% gewijzigd door Verwijderd op 28-02-2005 11:12 ]


Verwijderd

Of gebruik in plaats van double quotes ( " ) single quotes ( ' )?

Verwijderd

Topicstarter
Ik heb hem nu zo dat hij hem netjes als string laat zien, maar hij moet als opdracht gezien worden:

code:
1
2
3
4
5
6
  for(var stringnr=1; stringnr <= aantal; stringnr++)
  {
    var tijdelijk = '<' + "FSTCI !3d" + stringnr + ">";
    var test = "\""+ tijdelijk +"\"";
    stringArray[stringnr-1] = test;
  }


dit geeft heel netjes:
<FSTCI !3d0>
<FSTCI !3d1>
<FSTCI !3d2>
enz, maar ik moet de inhoud daarvan hebben...

  • André
  • Registratie: Maart 2002
  • Laatst online: 11-05 16:42

André

Analytics dude

Hoe bedoel je 'de inhoud'? Die tekst moet niet als tekst maar als tag op de pagina komen?

De tag aanmaken kun je zo doen:

code:
1
2
3
4
5
6
7
for(var stringnr=1; stringnr <= aantal; stringnr++)
{
  var tijdelijk = '<' + "FSTCI !3d" + stringnr + ">";
  var test = "\""+ tijdelijk +"\"";
  stringArray[stringnr-1] = test;
  document.body.appendChild(document.createElement(test));
}


Alleen dan word de tag wel weer afgesloten, misschien is document.write ook een optie:

code:
1
  document.write.(test);

Zorg en dan wel voor dat het script in de body staat en bij het inladen al werkt anders schrijft hij de hele pagina over.

[ Voor 98% gewijzigd door André op 28-02-2005 15:39 ]


Verwijderd

Topicstarter
normaal als ik zeg:

Stringtext = " \"<FSTCI !3d0>\" "
dan wordt Stringtext datgene wat op de plc string 0 is... En aangezien ik honderden strings van die plc af wil trekken wil ik dat niet handmatig gaan doen... hoewel dat inmiddels al veel sneller was geweest...

als ik Stringtext = <FSTCI !3d0>
doe dan pakt hij alleen eerste woord vande string die de FSTCI opleverd..

Hier ff de hele code misschien dat dat helpt..

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<HTML><HEAD></HEAD><BODY>
<SCRIPT>
  document.write("<APPLET CODE='MyApplet.class' HEIGHT=600 WIDTH=800>");
  var stringArray = new Array();
  var StringNumber = 1
 
  aantal = "5"
  document.write(" <PARAM NAME='aantal'  VALUE=" + aantal + ">");

  for(var stringnr=1; stringnr <= aantal; stringnr++)
  {
    var tijdelijk = '<' + "FSTCI !3d" + stringnr + ">";
    var test = "\""+ tijdelijk +"\"";

    document.body.appendChild(document.createElement(test));
    stringArray[stringnr-1] = test;
  }

  for(var getal=1; getal <= aantal; getal++)
  {
    var tempn= "a_" + getal;
    var temp= stringArray[(getal-1)];
    document.write(" <PARAM NAME=" + tempn + "  VALUE="+ temp +">");
  }
  document.write("</APPLET>");
</SCRIPT>
</BODY></HTML>

[ Voor 78% gewijzigd door Verwijderd op 28-02-2005 15:43 ]


Verwijderd

Oei, ik zou zeggen:
  • Geef je document een/het juiste DOCTYPE
  • Geef je document een titel
  • Zet je JavaScript <script> element in je <head>. (Beginnend als volgt: <script type="text/javascript">)
  • Ga eens kijken wat het Document Object Model (DOM) is. (Zie http://www.w3schools.com/htmldom/default.asp) Het zou je kunnen hebben je oplossingen een stukje meer cross-browser-compatible te maken.
  • Zet semicolons (puntkomma's ; ) achter je regels waar ze horen. (Bijv.: var StringNumber = 1; en aantal = "5";)
Dit zijn geen directe oplossingen met betrekking tot je probleem, maar volgens mij zul je een stuk betere oplossingen schrijven met deze methoden.

Maar als ik het goed begrijp wil je dus <FSTCI !3d0>, <FSTCI !3d1>, <FSTCI !3d2> als elementen in je <applet> neerzetten?

[ Voor 27% gewijzigd door Verwijderd op 01-03-2005 01:04 ]

Pagina: 1