7 svar
419 visningar
delz är nöjd med hjälpen
delz 50
Postad: 25 feb 2018 18:16

ta emot en text, sedan slumpmässigt generera nya ord som innehåller samma bokstäver

Använder både Jscript och VBScript och sparar filen som en .wsf-fil

 

<?xml version = '1.0' encoding = 'ISO-8859-1' ?>
<job id = 'textsträngsexempel'>
<script language = 'VBScript'>
<![CDATA[

' VBScript:

Function inmatning (meddelande, titel, ifyllt)
inmatning = InputBox(meddelande,titel,ifyllt)

End Function

]]>
</script>
<script language = 'JScript'>
<![CDATA[

//Jscript:

var titel2 = 'Du ska få ett nytt ord';
var meddelande2 = 'Skriv ett ord. Därefter kommer jag slänga tillbaka dig ett ord med samma bokstäver';
var ifyllt2 = 'Ordet';

var svar = inmatning(meddelande2, titel2, ifyllt2);

/*

Nu vet jag inte hur jag ska kunna koda något som slänger tillbak ett annat nytt slumpmässigt ord med samma bokstäver 

*/

 

]]>
</script>
</job>

IGIL 43
Postad: 26 feb 2018 13:33 Redigerad: 26 feb 2018 13:33

Ifall jag skriver in "Hej". Ska programmet bara skapa ett nytt ord med ett "H" ett "e" och ett "j"?


Ifall att det är fallet så kan du skapa en for loop som kör igenom ordet och byter plats på två stycken bokstäver för varje gång den körs. Tänk på att varje plats i ett ordet har ett index värde. Du vill alltså slumpa fram två index värden från din text och sedan byta plats på dem!


Fråga igen ifall du vill ha mer hjälp med koden!

delz 50
Postad: 27 feb 2018 14:19

Jag tänkte ut en annan lösning, man börjar med att mata in textsträngen, därefter ska det ordet skrivas baklänges, då får man med alla bokstäver och det blir ett nytt ord,fast baklänges. men slut resultatet blir detta:

<?xml version = '1.0' encoding = 'ISO-8859-1' ?>
<job id = 'inmatning'>
<script language = 'VBScript'>
<![CDATA[

' VBScript:

Function inmatning (meddelande, titel, ifyllt)
inmatning = InputBox(meddelande,titel,ifyllt)

End Function

]]>
</script>
<script language = 'JScript'>
<![CDATA[

//Jscript:
var ordBak = "";
var i;
var titel2 = 'Du ska få ett nytt ord';
var meddelande2 = 'Skriv ett ord. Därefter kommer jag slänga tillbaka dig ett ord med samma bokstäver';
var ifyllt2 = 'Ordet';

 

var svar = inmatning(meddelande2, titel2, ifyllt2);

//ifall jag skriver ut här WScript.Echo(svar[0]) så visar den en tom ruta.


for (i = svar.length - 1; i >= 0; i-- )
{
ordBak += svar[i];

}

Wscript.Echo(ordBak);


]]>
</script>
</job>

IGIL 43
Postad: 27 feb 2018 16:11

Det borde vara något fel med din inmatning i så fall. Koden fungerar ifall man sätter svar till något.

PeterÅ 842
Postad: 27 feb 2018 17:06 Redigerad: 27 feb 2018 17:21

Om du vill skriva / felsöka ett script är det bättre att "hårdkoda" värden till att börja med för att kunna verifiera att koden / logiken fungerar. Först därefter ska du lägga till inmatning.
OBS: Du måste använda metoden charAt() för att läsa enskilda tecken från en sträng. Se nedan.
OBS: JScript (Javascript, C, C++, C#, Java mfl.) skiljer på gemener och VERSALER. Skriv därför WScript.Echo(ordBak);

var i;
var ordBak = "";
var svar = "ni talar bra latin";

for (i = svar.length - 1; i >= 0; i-- )
{
  ordBak += svar.charAt(i);
}
WScript.Echo(ordBak);

IGIL 43
Postad: 27 feb 2018 21:19 Redigerad: 27 feb 2018 21:21
PeterÅ skrev :

Om du vill skriva / felsöka ett script är det bättre att "hårdkoda" värden till att börja med för att kunna verifiera att koden / logiken fungerar. Först därefter ska du lägga till inmatning.
OBS: Du måste använda metoden charAt() för att läsa enskilda tecken från en sträng. Se nedan.
OBS: JScript (Javascript, C, C++, C#, Java mfl.) skiljer på gemener och VERSALER. Skriv därför WScript.Echo(ordBak);

var i;
var ordBak = "";
var svar = "ni talar bra latin";

for (i = svar.length - 1; i >= 0; i-- )
{
  ordBak += svar.charAt(i);
}
WScript.Echo(ordBak);

Man ska kunna använda text[index] för att hämta en bokstav från en sträng i JavaScript/JScript.

PeterÅ 842
Postad: 28 feb 2018 08:15

JScript är inte samma sak som Javascript. I min version av JScript går det inte att använda index direkt. Det blir undefinedundefinedundefined.... precis som delz fick.
Jag har inte lagt ner något arbeta på att ta reda på varför.

delz 50
Postad: 1 mar 2018 19:43

Tack för era svar. Uppskattar tiden ni lägger ner!

Svara Avbryt
Close