我正在創建一個程序,它可以移動一組記錄並將這些學生記錄保存到一個文件中。將一組記錄從文件加載回程序中?
但是我現在希望將數據(StudentName,Class,Grade)重新加載到數組中,然後將它們顯示在另一個表單上的列表框中。
我嘗試了一些方法,但沒有成功。
這是寫在文件中的代碼:
unit NewStudent;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
ExtCtrls, studentdata;
{ TFormNewStudent }
Type
TFormNewStudent = class(TForm)
Button1: TButton;
ButtonAddStudent: TButton;
Button3: TButton;
ComboBoxPredictedGrade: TComboBox;
EditClass: TEdit;
EditName: TEdit;
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure ButtonAddStudentClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
Type
TPupil = Record
Name:String[30];
ClassGroup:String;
ComboBoxPredictedGrade:Integer;
end;
var
FormNewStudent: TFormNewStudent;
StudentRecArray : Array[1..30] of TPupil;
StudentNo:integer;
studentFile:TextFile;
implementation
{$R *.lfm}
{ TFormNewStudent }
procedure TFormNewStudent.Button1Click(Sender: TObject);
begin
FormStudentData.visible:=true;
FormNewStudent.visible:=false;
end;
procedure TFormNewStudent.Button3Click(Sender: TObject);
begin
FormStudentData.visible:=False;
FormNewStudent.visible:=True;
end;
procedure TFormNewStudent.ButtonAddStudentClick(Sender: TObject);
var
newStudent:string;
Begin
assignfile(studentFile,'G:\ExamGen\studentfile.txt');
StudentRecArray[StudentNo].Name:=EditName.text;
StudentRecArray[StudentNo].ClassGroup:=EditClass.text;
StudentRecArray[StudentNo].ComboBoxPredictedGrade:=ComboBoxPredictedGrade.ItemIndex;
append(studentFile);
newStudent:=(StudentRecArray[StudentNo].Name)+','+(StudentRecArray[StudentNo].ClassGroup)+','+(IntToStr(StudentRecArray[StudentNo].ComboBoxPredictedGrade));
writeln(studentFile,newStudent);
closefile(StudentFile);
StudentNo := StudentNo + 1;
end;
procedure TFormNewStudent.FormCreate(Sender: TObject);
begin
ComboBoxPredictedGrade.Items.Add('A');
ComboBoxPredictedGrade.Items.Add('B');
ComboBoxPredictedGrade.Items.Add('C');
ComboBoxPredictedGrade.Items.Add('D');
ComboBoxPredictedGrade.Items.Add('E');
ComboBoxPredictedGrade.Items.Add('U');
end;
end.
截圖1:StudentFile
截圖2:通過Zamrony P. Juhara給出AddStudent Form
請將您的學生文件中的內容添加爲文本,而不是截圖。它實際上並不那麼大,我們將無法從圖像中複製/粘貼。 –
你試過幾種方法? 「沒有成功」是什麼意思?有錯誤嗎?結果與預期結果有什麼不同?如果你想要「最好的方法」,那可能就是使用數據庫來存儲這些信息。 –
你的'ClassGroup:string'將永遠不會工作,因爲它沒有定義的長度。您需要使用'ShortString',就像您使用'Name:string [30];'所做的一樣。有了這個說法,一個沒有明確問題陳述的問題(*我已經嘗試了幾種方法,但沒有成功*)是非常難以問及的,圖像只能用於無法用文本顯示的東西。由於您的文件是文本,因此絕對沒有理由將其放在圖像中,並且表單的圖像完全沒有意義且無關緊要。如果您希望我們提供幫助,請儘可能方便地爲我們提供幫助。 –