inputstr$(4) of zoiets?
oogjes open, snaveltjes dicht
Zat volgens mij niet standaard in pascal, je kan als je een read doet gewoon vrolijk doortikken, ik heb ooit een functie ergens vandaan gehaald die gewoon je invoer afkapt bij een bepaald aantal karakters, werkte wel goed. ik zou zeggen, google ffies.
ik google me rot!!!
ik vraag mij af of het op read(ln) of write(ln) moet. Want maakt op zich niet zoveel uit op welke.
Ik denk ook dat het niet kan, net als in C/C++ wordt alles gewoon in een buffer geplaatst.
https://fgheysels.github.io/
optie 1
zelf een routine schrijven die achteraf controleert of er 4 of minder karakters ingevoerd zijn
optie 2
4 x een karakter inlezen en die achter elkaar plaatsen.
zelf een routine schrijven die achteraf controleert of er 4 of minder karakters ingevoerd zijn
optie 2
4 x een karakter inlezen en die achter elkaar plaatsen.
Dat er intelligente buitenaardse wezens bestaan wordt feilloos bewezen
door het feit dat ze nog geen contact met ons hebben opgenomen.
ik doe nu optie 2 in het programma, maar dan alsnog hij leest in:basmatt schreef op 07 oktober 2002 @ 13:58:
optie 1
zelf een routine schrijven die achteraf controleert of er 4 of minder karakters ingevoerd zijn
optie 2
4 x een karakter inlezen en die achter elkaar plaatsen.
g1 gedeclareerd als integer, maar er is een mogelijkheid (Weet ik 100% cker, maar niet meer hoe) om max 1 karakter aan te geven. Want nu kan je ook meerdere karakters invoeren op g1.
tis wel een tijd geleden voor mij:wardheuvel schreef op 07 oktober 2002 @ 14:02:
[...]
ik doe nu optie 2 in het programma, maar dan alsnog hij leest in:
g1 gedeclareerd als integer, maar er is een mogelijkheid (Weet ik 100% cker, maar niet meer hoe) om max 1 karakter aan te geven. Want nu kan je ook meerdere karakters invoeren op g1.
maar neem 2 variblen. 1 als "char" en 1 als "string" (gelimiteerd op 4 karakters)
stap 1: string leeg maken.
stap 2: char inlezen.
stap 3: string + char
stap 4: volgende char inlezen.
enz.
Dat er intelligente buitenaardse wezens bestaan wordt feilloos bewezen
door het feit dat ze nog geen contact met ons hebben opgenomen.
declareren lukt best, maar het limiteren! dat is het probleem. uhm, eignelijk het enige probleem!basmatt schreef op 07 oktober 2002 @ 14:14:
[...]
tis wel een tijd geleden voor mij:
maar neem 2 variblen. 1 als "char" en 1 als "string" (gelimiteerd op 4 karakters)
stap 1: string leeg maken.
stap 2: char inlezen.
stap 3: string + char
stap 4: volgende char inlezen.
enz.
Verwijderd
Dat er intelligente buitenaardse wezens bestaan wordt feilloos bewezen
door het feit dat ze nog geen contact met ons hebben opgenomen.
offtopic:
dat is een goeie !
dat is een goeie !
Ik heb thuis die functie nog wel ergens liggen geloof ik, ik zit nu alleen op me werk
Verwijderd
hm, heb hier nog hele oude code (1991-1992) liggen van mij, met allerlei routines (beetje ala TurboVision) , maar dan zonder OO.
Weet niet of alles nog 100% werkt, maar je kan die zo van me krijgen. (je moet wel een en ander ff uitzoeken dan denk ik).
bv.
Aanroep van keyboard input:
Weet niet of alles nog 100% werkt, maar je kan die zo van me krijgen. (je moet wel een en ander ff uitzoeken dan denk ik).
bv.
Aanroep van keyboard input:
code:
1
2
| FUNCTION GET(X, Y : BYTE; Msg : STRING; Flen : BYTE; Inp : InputType; VAR Value : STRING; Msk : STRING; Just : BYTE;hlpitem : STRING) : CHAR; |
met readkey leest pascal 1 karakter in.wardheuvel schreef op 07 oktober 2002 @ 14:16:
[...]
declareren lukt best, maar het limiteren! dat is het probleem. uhm, eignelijk het enige probleem!
een klein voorbeeldje:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| var
ch : char;
begin
writeln('Press Left/Right, Esc=Quit');
repeat
ch:=ReadKey;
case ch of
#0 : begin
ch:=ReadKey; {Read ScanCode}
case ch of
#75 : WriteLn('Left');
#77 : WriteLn('Right');
end;
end;
#27 : WriteLn('ESC');
end;
until ch=#27 {Esc}
end. |
Dat er intelligente buitenaardse wezens bestaan wordt feilloos bewezen
door het feit dat ze nog geen contact met ons hebben opgenomen.
dit heb ik nog op mijn HD staan... weet niet meer pcies hoe het werkt en of alles nodig is:
leesword.p
#include "pract02.glob.h"
#include "pract02.headers.h"
procedure leeswoord (var s : stringtype);
var
ch : char;
begin
writeln('leeswoord, max', MAXWOORD, 'karacters');
while (not eoln) and (s.length <> MAXWOORD) do
begin
read (ch);
s.length := s.length + 1;
s.characters[s.length] := ch
end;
readln
end;
pract02.glob.h
const
MAXWOORD = 30;
type
stringindex = 1 .. MAXWOORD;
stringlength = 0 .. MAXWOORD;
tabeltype = packed array [stringindex] of char;
stringtype = record
characters : tabeltype;
length : stringlength
end;
pract02.headers.h
procedure leeswoord (var s : stringtype);
external;
ik hoop dat je er iets aan hebt
leesword.p
#include "pract02.glob.h"
#include "pract02.headers.h"
procedure leeswoord (var s : stringtype);
var
ch : char;
begin
writeln('leeswoord, max', MAXWOORD, 'karacters');
while (not eoln) and (s.length <> MAXWOORD) do
begin
read (ch);
s.length := s.length + 1;
s.characters[s.length] := ch
end;
readln
end;
pract02.glob.h
const
MAXWOORD = 30;
type
stringindex = 1 .. MAXWOORD;
stringlength = 0 .. MAXWOORD;
tabeltype = packed array [stringindex] of char;
stringtype = record
characters : tabeltype;
length : stringlength
end;
pract02.headers.h
procedure leeswoord (var s : stringtype);
external;
ik hoop dat je er iets aan hebt
Ho ho - in C/C++ kun je prima een limiet stellen aan het aantal bytes dat je inleest (met een read/fread call) of de lengte van de strings die je inleest (met 'n scanf variant en een format string van de vorm "%4s" waarbij 4 de gewenste maximale lente is).whoami schreef op 07 oktober 2002 @ 13:56:
Ik denk ook dat het niet kan, net als in C/C++ wordt alles gewoon in een buffer geplaatst.
Pagina: 1