Maak een applicatie om de regels van tekstfiles om te zetten naar hoofdletters.
De tekstfiles mogen niet te lang zijn. Stel de grens op 100 regels.
De applicatie bestaat uit één formulier waarop de volgende controls zijn aangebracht:
ÔÇó een editbox, die de naam van de file bevat;
ÔÇó een button Hoofdletters, die de hoofdletteromzetting uitvoert.
Ontwerp de applicatie zodanig, dat bij het drukken op de button Hoofdletters de file regel voor regel
wordt ingelezen in een string-array, waarna de strings in de array worden omgezet naar hoofdletters
en dan weer naar de file worden geschreven. Als dit gebeurd is, wordt een messagebox "Ready"
getoond.
Zorg voor exception handling (try ... except ... end) zodat fouten worden afgevangen, bijv. een file die
niet te openen is. Foutmeldingen worden ook middels messageboxes gegeven.
Mijn procedure ziet eruit:
Code:
unit untLetterTabel;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
procedure LeesUitFile (sTekst: String);
implementation
type
TLettertabel = array ['A'..'Z'] of Integer;
procedure LeesUitFile (sTekst: String);
var
tFile: Textfile;
iIndex: Integer;
cLetter: Char;
ltLetter: TLettertabel;
begin
AssignFile (tFile, sTekst);
try
Reset (tFile);
ReadLn (tFile, sTekst);
Rewrite (tFile);
while not Eof (tFile)
do begin
for iIndex := 1 to Length (sTekst)
do begin
cLetter := UpCase(sTekst[iIndex]);
if cLetter in ['A'..'Z']
then
ltLetter[cLetter] := ltLetter[cLetter] + 1;
WriteLn (tFile, cLetter)
end
end;
CloseFile(tFile);
ShowMessage ('Ready');
except
ShowMessage ('Bestand ' + sTekst + ' niet gevonden.')
end
end;
end.
Indien ik while nog Eof (tFile) eruit haal krijg ik geen foutmelding (Project Hoofdlettersomzetting.exe raised exception class EInOutError with message 'I/O error 104'. Process stopped), maar krijg in mijn tekst file vreemd Lay-out:
T
E
S
T
Wat doe ik verkeerd? Hoe kan ik dit oplossen?
Alvast bedankt.
Bookmarks