954,529 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

Setiing Field width in a record

I know this is probably basic stuff with an easy solution, but I can't seem to find it anywhere in my textbook.

I am working with an array of records. The user enters the data for each field of the record. The first field is a string entered by the user naming the type of record. The user can enter up to 15 characters. I want the field width to remain at 15 regardless of how many characters the user enters. This is necessary in order for my the fields to align correctly when the array is displayed. With my limited programming knowledge, the display of the first field is always the number of charcacters the user entered which causes the diplay of the remaining fields to be unaligned and will no doubt cost me points on this assignment. Any help would be greatly appreciated. I have tried specifying a string length in the type declaration with no success.

bwork
Newbie Poster
2 posts since Feb 2005
Reputation Points: 10
Solved Threads: 0
 

I forgot to post the code I have so far. I know this iis ugly but I have two excuses. First there are going to be several modules in the program so I trying to write one module at a time the past the whole thing together. The second reason is I don't know what I'm doing.

program displaycats1;

{$APPTYPE CONSOLE}

uses
SysUtils;

Const
space = ' ';


Type
CatTitle = string[15];
CatType = (Income,Expense);
BudgRec = Record
Category : CatType;
CatName : CatTitle;
Amount : real
end;
BudgArray = array[1..50] of BudgRec;
FileSource = File of BudgRec;
Var
BudgeRec : BudgRec;
Budge : BudgArray;
BudgFile : FileSource;
NumRecs,h : integer;
TotIncome,TotExpense : real;

begin
Assign (BudgFile,'budget.bin');
Reset (BudgFile);
NumRecs := 0;

While not EOF (BudgFile) do
begin
NumRecs := NumRecs + 1;
Read (BudgFile, Budge[NumRecs]);
End; {while}
Close (BudgFile);
writeln;
TotIncome := 0.0;
h := 0;
writeln ('Income:');

Repeat
h := h + 1;
BudgeRec := Budge[h];
If BudgeRec.Category = Income Then
Begin
writeln (Space:5,BudgeRec.Catname,space,BudgeRec.Amount:8:2);
TotIncome := TotIncome + BudgeRec.Amount;
End;
Until h = NumRecs;
writeln (Space:20,'-----------');
writeln (Space:5,'Total Income', space:5,TotIncome);
writeln;
readln
end.

bwork
Newbie Poster
2 posts since Feb 2005
Reputation Points: 10
Solved Threads: 0
 

You can use the Copy function like this.

program TruncateString;

{$APPTYPE CONSOLE}

uses
   SysUtils;

var
   Input  : String;
   Output : String;
begin
   writeln;
   write( 'Enter a string more than three characters long: ' );
   readln( Input );

   Output := Copy( Input, 1, 3 );
   writeln;
   writeln( Output );
   writeln;
end.

**** Output ****

Enter a string more than three characters long: February

Feb
Jackrabbit
Light Poster
31 posts since Jan 2005
Reputation Points: 10
Solved Threads: 0
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You