Diff
checker
Testo
Testo
Immagini
Documenti
Excel
Cartelle
Legal
Enterprise
Applicazione per desktop
Prezzi
Accedi
Scarica Diffchecker Desktop
Confronta il testo
Trova la differenza tra due file di testo
Strumenti
Cronologia
Editor live
Comprimi invariate
Senza a capo
Layout
Diviso
Unificato
Livello di dettaglio
Intelligente
Parola
Carattere
Evidenziazione sintassi
Scegli sintassi
Ignora
Trasforma testo
Vai alla prima modifica
Modifica input
Diffchecker Desktop
Il modo più sicuro per usare Diffchecker. Ottieni l'app Diffchecker Desktop: i tuoi diff non lasciano mai il tuo computer!
Ottieni Desktop
Untitled diff
Creato
9 anni fa
Il diff non scade mai
Eliminare
Esporta
Condividere
Spiegare
30 rimozioni
Linee
Totale
Rimosso
Caratteri
Totale
Rimosso
Per continuare a utilizzare questa funzione, aggiorna a
Diff
checker
Pro
Visualizza prezzi
39 linee
Copia tutti
45 aggiunte
Linee
Totale
Aggiunto
Caratteri
Totale
Aggiunto
Per continuare a utilizzare questa funzione, aggiorna a
Diff
checker
Pro
Visualizza prezzi
50 linee
Copia tutti
function TTextTestImporter.ParseHeader(Lines: TStrings): Boolean;
function TTextTestImporter.ParseHeader(Lines: TStrings): Boolean;
var
var
Copia
Copiato
Copia
Copiato
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
Copia
Copiato
Copia
Copiato
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;
Copia
Copiato
Copia
Copiato
for i := 0 to Lines.Count -
1 do
PatientFound := False;
DateFound := False;
for i := 0 to Lines.Count -
1 do
begin
begin
Copia
Copiato
Copia
Copiato
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
Copia
Copiato
Copia
Copiato
Pos1 := PosEx(':', Line, Length('PACIENTE') + 1);
PatientFound := True;
if Pos1 > 0 then
PatientName := Trim(PatientRegex.Match[1]);
begin
AgeStr := Trim(
Patient
Regex.Match[2]);
Pos2 := RPos('IDADE', Line);
BirthDateStr
:=
Trim(PatientRegex.Match[3]);
if Pos2 > 0 then
FData.Strings['name'] := PatientName;
begin
FData.Integers['age'] :=
StrToIntDef(
Age
Str, 0)
;
PatientName := Trim(Copy(Line, Pos1 + 1, Pos2 - Pos1 - 1));
FData.Floats['birthdate'] := ScanDateTime('dd/mm/yy', BirthDateStr)
;
if
Patient
Name <> '' 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;
Copia
Copiato
Copia
Copiato
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;
Copia
Copiato
Copia
Copiato
Diff salvati
Testo originale
Apri file
function TTextTestImporter.ParseHeader(Lines: TStrings): Boolean; var i, Pos1, Pos2, Pos3, Pos4, Age: Integer; Line, PatientName: String; begin Result := False; for i := 0 to Lines.Count -1 do begin if Result then Exit; Line := UpperCase(Trim(Lines[i])); if AnsiStartsStr('PACIENTE', Line) then begin Pos1 := PosEx(':', Line, Length('PACIENTE') + 1); if Pos1 > 0 then begin Pos2 := RPos('IDADE', Line); if Pos2 > 0 then begin PatientName := Trim(Copy(Line, Pos1 + 1, Pos2 - Pos1 - 1)); if PatientName <> '' then begin Result := True; FData.Strings['name'] := PatientName; Pos3 := PosEx(':', Line, Pos2); if Pos3 <> 0 then begin Pos4 := PosEx('ANOS', Line, Pos3); if TryStrToInt(Trim(Copy(Line, Pos3 + 1, Pos4 - Pos3 - 1)), Age) then FData.Integers['age'] := Age; end; end; end; end; end; end; end;
Testo modificato
Apri file
function TTextTestImporter.ParseHeader(Lines: TStrings): Boolean; var PatientFound, DateFound: Boolean; Line, PatientName, AgeStr, BirthDateStr, DateStr: String; PatientRegex, DateRegex: TRegExpr; i: Integer; 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; PatientFound := False; DateFound := False; for i := 0 to Lines.Count - 1 do begin if (DateFound and PatientFound) or (i > 20) then break; Line := Trim(Lines[i]); if not PatientFound and PatientRegex.Exec(Line) then begin PatientFound := True; PatientName := Trim(PatientRegex.Match[1]); AgeStr := Trim(PatientRegex.Match[2]); BirthDateStr := Trim(PatientRegex.Match[3]); FData.Strings['name'] := PatientName; FData.Integers['age'] := StrToIntDef(AgeStr, 0); FData.Floats['birthdate'] := ScanDateTime('dd/mm/yy', BirthDateStr); continue; end; if not DateFound and DateRegex.Exec(Line) then begin DateFound := True; DateStr := Trim(DateRegex.Match[1]); FData.Floats['date'] := ScanDateTime('dd/mm/yyyy', DateStr); 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;
Trovare la differenza