Untitled diff

Created Diff never expires
34 हटाए गए
लाइनें
कुल
हटाया गया
शब्द
कुल
हटाया गया
इस सुविधा का उपयोग जारी रखने के लिए, अपग्रेड करें
Diffchecker logo
Diffchecker Pro
39 लाइनें
43 जोड़े गए
लाइनें
कुल
जोड़ा गया
शब्द
कुल
जोड़ा गया
इस सुविधा का उपयोग जारी रखने के लिए, अपग्रेड करें
Diffchecker logo
Diffchecker Pro
50 लाइनें
function TTextTestImporter.ParseHeader(Lines: TStrings): Boolean;
function TTextTestImporter.ParseHeader(Lines: TStrings): Boolean;
var
var
i, Pos1, Pos2, Pos3, Pos4, Age: Integer;
PatientFound, DateFound: Boolean;
Line, PatientName: String;
Line, PatientName, AgeStr, BirthDateStr, DateStr: String;
PatientRegex, DateRegex: TRegExpr;
i: Integer;
begin
begin
PatientRegex := TRegExpr.Create;
PatientRegex.Expression := 'Paciente\s+:*(.*)\s{2,}Idade:+(\d+)\s*anos\s*Nascimento:*(.+)';
PatientRegex.ModifierI := True;
PatientRegex.ModifierG := True;

DateRegex := TRegExpr.Create;
DateRegex.Expression := 'Data\s*de\s*Cadastro\.*\s*:*(.+)';
DateRegex.ModifierI := True;
DateRegex.ModifierG := True;

Result := False;
Result := False;
for i := 0 to Lines.Count -1 do
PatientFound := False;
DateFound := False;
for i := 0 to Lines.Count - 1 do
begin
begin
if Result then
if (DateFound and PatientFound) or (i > 20) then
Exit;
break;
Line := UpperCase(Trim(Lines[i]));
Line := Trim(Lines[i]);
if AnsiStartsStr('PACIENTE', Line) then
if not PatientFound and PatientRegex.Exec(Line) then
begin
begin
Pos1 := PosEx(':', Line, Length('PACIENTE') + 1);
PatientFound := True;
if Pos1 > 0 then
PatientName := Trim(PatientRegex.Match[1]);
begin
AgeStr := Trim(PatientRegex.Match[2]);
Pos2 := RPos('IDADE', Line);
BirthDateStr := Trim(PatientRegex.Match[3]);
if Pos2 > 0 then
FData.Strings['name'] := PatientName;
begin
FData.Integers['age'] := StrToIntDef(AgeStr, 0);
PatientName := Trim(Copy(Line, Pos1 + 1, Pos2 - Pos1 - 1));
FData.Floats['birthdate'] := ScanDateTime('dd/mm/yy', BirthDateStr);
if PatientName <> '' then
continue;
begin
end;
Result := True;

FData.Strings['name'] := PatientName;
if not DateFound and DateRegex.Exec(Line) then
Pos3 := PosEx(':', Line, Pos2);
begin
if Pos3 <> 0 then
DateFound := True;
begin
DateStr := Trim(DateRegex.Match[1]);
Pos4 := PosEx('ANOS', Line, Pos3);
FData.Floats['date'] := ScanDateTime('dd/mm/yyyy', DateStr);
if TryStrToInt(Trim(Copy(Line, Pos3 + 1, Pos4 - Pos3 - 1)), Age) then
FData.Integers['age'] := Age;
end;
end;
end;
end;
end;
end;
end;
end;
Result := DateFound and PatientFound
and (FData.Get('name', '') <> '')
and (FData.Get('age', 0) <> 0)
and (FData.Get('birthdate', 0.0) <> 0)
and (FData.Get('date', 0.0) <> 0);
end;
end;