Archief - DOS / Batch vragen

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.

Jinne

Legacy Member
Ik ben met een (kunst)project bezig waar ik mijzelf heb voorgenomen dat een paar zaken in een dos look moeten gebeuren. Heb een oude, nog werkende laptop op de kop kunnen tikken en wil daarop een paar zaken laten gebeuren.

Nu heb ik geen enkele kennis van programmeren, en om echt geheel eerlijk te zijn is mijn interesse daarin ook maar beperkt tot het uitvoeren van mijn concept. Heb op internet al een hele hoop tutorials en teksten gelezen over batch files en hoe ze te schrijven e.d. toch is het vooral trial and error bij mij.

Paar zaken waar ik voorlopig in vast blijk te zitten zijn:

1)
Ik zou de gebruikers graag een vraag stellen, een vraag die ze kunnen beantwoorden via tekst in te voeren. Wanneer ze klaar zijn met hun antwoord te typen en op enter of een andere gedefinieerde toets duwen, zou ik graag hebben dat hun antwoord naar een tekst bestand wordt opgeslagen. Alvorens het scherm leeg wordt en de volgende vraag gesteld wordt. Dat nieuw antwoord wordt dan ook in het zelfde tekst bestand opgeslagen, onder het vorige, enzoverder....

Vraag stellen kan via echo, en scherm leegmaken via CLS, maar hoe de gebruiker tekst laten invoeren en die ingevoerde tekst op te slaan kan ik niet zo snel vinden.​

2)
Ben ook aan het uitzoeken hoe ik een soort van cadavre exquis kan maken. Het principe is beetje het zelfde als hierboven, gebruiker 1 typt een zin, drukt op enter alvorens de eerste woorden van de 2de zin te typen en drukt nogmaals op enter. Het scherm wordt leeg, en enkel de eerste woorden van de 2de zin staan op het scherm, zodat de 2de gebruiker deze kan aanvullen, en de eerste van de 3de zin kan typen, enzoverder....

Ik moet dan nog wel een manier vinden om na x aantal zinnen de laatste gebruiker het te laten afsluiten. Maar zover ben ik nog niet. Het hele verhaaltje moet natuurlijk in de achtergrond in een tekst bestand opgeslagen worden, want zou zonde zijn het gehele verhaal niet meer te hebben nadien.​


Nu heb ik al wat zitten zoeken op internet, maar ik kan maar niet vinden hoe ik dat kan uitvoeren. Misschien dat iemand hier mij even in de juiste weg kan duwen zodat ik weer wat verder kan gaan prutsen :) En waarom ik dat perse in dos wil? Omdat ik het later echt op een heel oude computer wil laten draaien. Die laptop die ik nu heb is ook van enige leeftijd, maar wil later naar dos only computers gaan (laptop draait al win 95).

merci voor de hulp

Gurdt

Legacy Member
Je zal toch een programmeertaal moeten gaan gebruiken :) C++ is wat moeilijker als starter misschien, maar er zullen ook wel andere talen zijn waarmee je gemakkelijk zo een DOS-achtig venster kan maken.

Baffel

Legacy Member
Ik denk dat ge zoiets best in c/c++ maakt, dat heeft dan ook de "dos"-look (Command-line-interface ;)) en de zaken die je daar beschrijft is daar echt maar een regeltje of 10 werk. Nu je kent niks van programmeren dus dat kan mss nog een probleem vormen omdat je het gaat moeten compilen voor dos. Mss moet je in die richting eens een paar zaken eens opzoeken.

Jinne

Legacy Member
Oké, zal eens wat gaan zoeken op c/c++
Kan later nog wel van pas komen denk ik dan en heb binnenkort toch tijd om me daarin te verdiepen. Is zelfstudie een haalbare kaart? Of ga ik een boek ofzo moeten gaan kopen?

Tyfius

Legacy Member
Je hoeft daarvoor geen C++ te gaan gebruiken hoor. Je kan met C# ook gewoon een console applicatie maken, dat gaat er hetzelfde uit zien en je zal sneller klaar zijn.

Baffel

Legacy Member
Het is zeker zelf te leren, zeker als je wat aanleg hebt. Zoals hierboven gezegd, c# zal ook wel werken. Je moet het gewoon kunnen compilen voor dos. c en c++ zijn mischien niet de beste programeer talen om met strings (tekst) om te gaan.

simpel voorbeeld in windows:

open kladblok en plak de volgende tekst erin
#include <stdio.h>

void main()
{
printf("\nHello World\n");
}

sla het bestand ergens op en verander de extensie in ".c" ipv ".txt" (vb hello.c) . Open de Command Prompt (cmd) en ga naar te directory waar je het hebt opgeslagen. typ
en daarna
Die a.exe is dus het programma dat je juist hebt gemaakt. gcc is de compiler die de code in hello.c omzet naar een runnable programma voor windows.

Jerre Muesli

Legacy Member
Waarom zou je een veel te zware Visual Studio + .Net framework installeren op een oude laptop om effe een console app van 10 lijnen in C# te schrijven

iterums

Legacy Member
Imo is Python echt geschikt voor jouw doeleinden en kennis.

Met ongeveer een zestal hoofdstukken van deze tutorial vlug door te nemen, zou het al mogelijk moeten zijn.

Hier hoe vraag 1 er ongeveer zou uitzien:
Code:
import os

with open('answers.txt', 'w') as f:
  while True:
    os.system('cls')           # clear screen (on windows)
    question = 'blabla?'       # ... choose random question, e.g. from text file
    answer = raw_input(question)
    
    if answer:
      f.write(answer + "\n")
    else:
      break  #stop raising questions

YaMo

Legacy Member
iterums zei:
Imo is Python echt geschikt voor jouw doeleinden en kennis.

Met ongeveer een zestal hoofdstukken van deze tutorial vlug door te nemen, zou het al mogelijk moeten zijn.

Hier hoe vraag 1 er ongeveer zou uitzien:
Code:
import os

with open('answers.txt', 'w') as f:
  while True:
    os.system('cls')           # clear screen (on windows)
    question = 'blabla?'       # ... choose random question, e.g. from text file
    answer = raw_input(question)
    
    if answer:
      f.write(answer + "\n")
    else:
      break  #stop raising questions

Inderdaad, C, C++, C#... Waarom het zo moeilijk maken als je met een eenvoudige scripttaal veel makkelijker zoiets kan maken?
Zeker voor iemand die niet kan programmeren lijkt Python mij toch een van de meest aangewezen talen om snel iets in te maken.

Jinne

Legacy Member
Oké, ben die site van python aan het lezen. Zal zien of ik er iets mee aan kan, want zoals ik al zei kan ik niet programmeren en is mijn interesse daarin eindelijk ook redelijk beperkt momenteel (maar dat kan misschien veranderen met er mee bezig te zijn, niet?)

@Marsmillo; ja dat werkt. Maar niet op die oude laptop. Van wat ik kan afleiden wordt set /p niet ondersteund in oudere versies van dos. Zou het eventueel op een nieuwer systeem kunnen draaien, maar daar krijg ik die console niet in fullscreen :(

Zal mij maar eens proberen te verdiepen in python zeker

Recipe4hate

Legacy Member
Set /P werkt op nieuwere DOSsystemen (lol, bestaat dat?)

http://ss64.com/nt/set.html

http://www.robvanderwoude.com/ntset.php

Code:
Prompt For Input

The /P switch was [B]introduced in Windows 2000[/B]:
SET /P variable=[promptString]
The /P switch allows you to set the value of a variable to a line of input entered by the user. Displays the specified promptString before reading the line of input. The promptString can be empty.

Groovalicious

Legacy Member
Heb rap iets in c++ gemaakt... Vragen worden ingelezen uit vragen.txt bestand en antwoorden worden per naam opgeslaan in een verschillend tekstbestand.

Code:
#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>

using namespace std;

int main (int argc,  char *argv[])
{
    string Vragen[20];
    string Antwoorden[20];
    string Naam;
    string OutputPath;
    ifstream file;
    file.open("vragen.txt");
    int e = 0;

    if (file.is_open())
    {
        cout << "Wat is je naam?" << endl;
        cin >> Naam;

        OutputPath = "Vragen_" + Naam + ".txt";
        ofstream SaveFile(OutputPath.c_str());

        while (! file.eof() )
        {
            system("cls");
            getline(file,Vragen[e]);

            cout << Vragen[e] << endl;
            cin >> Antwoorden[e];
            SaveFile << e+1 << ": " << Antwoorden[e] << endl;
            e++;
        }

        file.close();
        SaveFile.close();
    }
    else
    {
        cout << "Unable to open file";
    }
}

En hier is de gecompileerde versie :)

Jinne

Legacy Member
Groovalicious zei:
Heb rap iets in c++ gemaakt... Vragen worden ingelezen uit vragen.txt bestand en antwoorden worden per naam opgeslaan in een verschillend tekstbestand.

Code:
#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>

using namespace std;

int main (int argc,  char *argv[])
{
    string Vragen[20];
    string Antwoorden[20];
    string Naam;
    string OutputPath;
    ifstream file;
    file.open("vragen.txt");
    int e = 0;

    if (file.is_open())
    {
        cout << "Wat is je naam?" << endl;
        cin >> Naam;

        OutputPath = "Vragen_" + Naam + ".txt";
        ofstream SaveFile(OutputPath.c_str());

        while (! file.eof() )
        {
            system("cls");
            getline(file,Vragen[e]);

            cout << Vragen[e] << endl;
            cin >> Antwoorden[e];
            SaveFile << e+1 << ": " << Antwoorden[e] << endl;
            e++;
        }

        file.close();
        SaveFile.close();
    }
    else
    {
        cout << "Unable to open file";
    }
}

En hier is de gecompileerde versie :)

Thanks daarvoor! Heb het al gedownload en in een mapje gezet als voorbeeld (en backup). Nu het lijkt voor mezelf ook gewoon handig dat ik het zelf kan schrijven, omdat ik daar dan ook iets van bijleer en het kan doen zoals ik zelf wil. Ben die tutorials van python aan het lezen, maar echt ver ben ik nog niet geraakt. Het is ook veel te mooi weer om achter een computer scherm te zitten en code te leren en te testen.

Maar bedankt voor de hulp!
Weet nu dat ik hier terecht kan voor vragen en vriendelijk vooruit geholpen zal worden.
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