Archief - java en ascii

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

onslieke

Legacy Member
Wij moeten een spel maken. Om onze highscores weg te schrijven, encrypteren we. Het probleem is dat java verschillende ascii-waardes niet kent. Hij print ze dan in het bestand als een ? af en dat geeft problemen bij het inlezen van het bestand.
Hier is het stukje code:
Code:
 private void encrypt()
    {
        int i;
        int j;
        int tellerkey;
        int letter;


        for(i=0;i<MAXAANTALSPELERS;i++)
        {
            if(highscores[i]!=null)
            {
                int lengte=highscores[i].length();
                char[] ar = new char[lengte];
                ar=highscores[i].toCharArray();
                for(j=0,tellerkey=0;j<ar.length;j++,tellerkey++)
                {
                    letter=(ar[j]+key[tellerkey]);
                    System.out.println("letter = " + letter);
                    System.out.println("(char)letter = " + (char)letter);
                    ar[j]=(char)letter;
                    if(tellerkey ==key.length-1)
                        tellerkey=-1;
                }
                highscores[i]=toString(ar);
            }
        }
    }

de waardes die hij niet kent: 146,143,138...

Cycloon

Legacy Member
Idd, serialiseer die stuff gewoon dan heb je nooit miserie. En volgens mij noem je wat jij doet niet encrypteren maar gewoon wegschrijven ofzo :p

onslieke

Legacy Member
wa is serialiseren?
Btw men encrypte is de code hierbove. Die tabel highscores schrijf ik later weg in een bestand. Als ik in het bestand later trg lees, decrypteer ik dat.

stewie4ever

Legacy Member
Ik heb dat probleem ook : waardes zoals 113 worde dan weggeschreven als '?'.
wachten tot als het terug school is en aan de leerkracht vragen :)

Cycloon

Legacy Member
x4xk3 zei:
Dan plakte beter deze link, dies iets beter als ge er nog nooit van gehoord hebt :)

Bwa, na het lezen van die info zou ik nog altijd niet weten hoe ik nu precies serialiseer tbh. Maar ok, ze zijn beide niet echt volledig wat ze zouden moeten zijn :p

Gurdt

Legacy Member
kheb nie gelezen wa die serializen is (echt geen zin om te lezen vndaag :() maar dat is toch dat je hele objecten gaat wegschrijven en als object trug inlezen he? of ben ik mis

Cycloon

Legacy Member
Object serialization is the process of saving an object's state to a sequence of bytes, as well as the process of rebuilding those bytes into a live object at some future time.

Had je ook maar de eerste 5 regels gelezen dan had je het al gezien.

Adelbert

Legacy Member
Gurdt zei:
kheb nie gelezen wa die serializen is (echt geen zin om te lezen vndaag :() maar dat is toch dat je hele objecten gaat wegschrijven en als object trug inlezen he? of ben ik mis

zoiet in die aard. Je maakt zogezegd je objecten plat, duwt ze ergens door, en blaast ze dan terug op naar de vorm die ze hadden voor je ze verstuurd had.

Let wel, die objecten hebben niets meer met elkaar te maken, het enige dat gelijk is, zijn de waarden van voor dat je ze verstuurde. Daarna zit je aan elke kant met 2 verschillende objecten

onslieke

Legacy Member
Als ik het goed heb betekent serialiseren zoiets als: een object omzetten naar bytes.

dit is niet wat ik wil doen. Wij maken dus een spelletje waardoor je highscores krijgt bv
160 Jan
145 Charlotte

Wij willen die highscores in een bestand zetten met behulp van een key bv "spelletje". Bij het encrypteren (wij noemen dit toch encrypteren) gebeurt er dit:
1 + s = 49 + 115 = 164 --> schrijf de char met ascii waarde 164 in het bestand
6 + p = 54 + 112 = 166 --> schrijf de char met ascii waarde 166 in het bestand

Zo kan er niemand in dat bestand zien wat er eigenlijk staat... (toch als ge niet te hard zoekt:D)

Als we de highscores terug willen inleze uit het bestand om ze bv aan de gebruiker te laten zien doen we:
164 - 115 = 49 --> print de char met ascii-waarde 49
166 - 112 = 54 --> print de char met ascii-waarde 54

Bij C werkte dit, en ik hoopte dat da bij java ook het geval ging zijn maar dat valt tege.
Maar dit is toch niet serialiseren?of wel?

Jerre Muesli

Legacy Member
dus ok, je doet gewoon een rekensommetje of zoiets en schrijft het nadien weg.
Waarom dan niet je dingetje doen, nadien serializeren en dan wegschrijven.
Dan unserialize en je rekensommetje bij het uitlezen..

Gurdt

Legacy Member
Cycloon zei:
Had je ook maar de eerste 5 regels gelezen dan had je het al gezien.
ik zeg toch, geen zin om uw bijbel-website te lezen, reageer daar dan ook niet op?

Adelbert zei:
zoiet in die aard. Je maakt zogezegd je objecten plat, duwt ze ergens door, en blaast ze dan terug op naar de vorm die ze hadden voor je ze verstuurd had.

Let wel, die objecten hebben niets meer met elkaar te maken, het enige dat gelijk is, zijn de waarden van voor dat je ze verstuurde. Daarna zit je aan elke kant met 2 verschillende objecten
dankuwel adelbert ;)

onslieke

Legacy Member
x4xk3 zei:
dus ok, je doet gewoon een rekensommetje of zoiets en schrijft het nadien weg.
Waarom dan niet je dingetje doen, nadien serializeren en dan wegschrijven.
Dan unserialize en je rekensommetje bij het uitlezen..

het probleem is bij het wegschrijven. Sommige karakters kent em gwn ni en schijft em dan als een ? weg, wa later problemen geeft bij het inleze...
Kent java die ascii wel helemaal?

cooLopke

Legacy Member
Ik weet dat er sommige ascii waarden zijn die voorbehouden zijn door het programma zelf, maar de exacte waarden weet ik niet meer vanbuiten, maar dit waren zeker niet de getallen in de 100.

passero

Legacy Member
waarom gebruikt ge niet gewoon hetzelfde systeem maar met een beperkte charset. Bijvoorbeeld A-Z. Als ge A + 10 doet krijgt ge K dus slaat ge K op ipv A. Als ge Z + 10 doet krijgt ge dan J. Die kunt ge dan perfect als int waarde in een bestandje opslaan want ge zijt zeker dat alle chars gaan werken...

cooLopke

Legacy Member
Een simpel voorbeeldje van een encryptie in java:

public static void main(String[] args) {
String boodschap="VEEL PLEZIER MET DEZE OPGAVE";
String nieuweBoodschap="";
char kar;
int k=20, hulp; // de sleutel k krijgt de waarde 20
for (int i=0;i<boodschap.length();i++){
hulp=boodschap.charAt(i)+k; // vermeerderen met de sleutelwaarde
hulp=hulp%256; /* modulo 256 rekenen, dit hoef je eigenlijk alleen te doen
als je sleutel k groot is */
kar=(char)hulp; //omzetten naar een karakter
nieuweBoodschap=nieuweBoodschap+kar; // nieuwe boodschap maken
}
System.out.println(nieuweBoodschap);]

JStyles

Legacy Member
Hallo mensen

Ik moet vier op een rij maken als taak voor school in java maar ik weet totaal niet hoe ik er moet aan beginnen wie kan mij helpen?

Grtz :p
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan