home *** CD-ROM | disk | FTP | other *** search
- {
- ... would anyone know how-to sort a Record With 5 thing in it one of
- which is "NAME"...I want to sort each Record in the Array by name and
- can't figure it out....my Array name is LabelS and my Record name is
- SofT...
- }
-
- Program sort_Records;
-
- Type
- index_Type = 1..100;
- soft_Type = Record
- name,
- street,
- city: String[20];
- state: String[2];
- zip: Integer
- end; { Record }
- Labels_Type = Array[index_Type] of soft_Type;
-
- Var
- Labels: Labels_Type; { an Array of Records }
- index,
- count: index_Type;
- f: Text; { a File on disk holding your Records, we assume 100 }
-
- { ******************************************** }
- Procedure get_Records(Var f: Text;
- Var Labels: Labels_Type); Var
- counter: index_Type;
-
- begin { get_Records }
- For counter := 1 to 100 do
- begin
- With Labels[counter] do
- readln(f, name, street, city, state, zip);
- end;
- end; { get_Records }
-
- { ******************************************** }
- Procedure sort_em(Var Labels: Labels_Type);
-
- Var
- temp: soft_Type; { a Single Record }
- counter,
- counter2,
- min_index: Integer;
-
- begin { sort_em }
- For counter := 1 to 99 do { 99 not 100 }
- begin
- min_index := counter;
- For counter2 := counter + 1 to 100 do
- if Labels[counter2].name < Labels[counter].name
- then
- min_index := counter;
- temp := Labels[min_index];
- Labels[min_index] := Labels[counter];
- Labels[counter] := temp
- end;
- end; { sort_em }
-
- { ******************************************** }
-
- Procedure Write_Labels(Var Labels: Labels_Type;
- Var f: Text);
- Var
- counter: index_Type;
-
- begin { Write_Labels }
- For counter := 1 to 100 do
- begin
- With Labels[counter] do
- Writeln(f, name, street, city, state, zip);
- end;
- end; { Write_Labels }
-
- { ******************************************** }
-
- begin { main }
- assign(f, 'DATAFile.DAT'); { or whatever it is on your disk }
- reset(f);
- get_Records(f, Labels);
- sort_em(Labels);
- reWrite(f);
- Write_Labels(Labels, f);
- close(f)
- end. { main }