while not eof(oldfile) do begin readln(oldfile, oldfileline); if (pos('START', oldfileline)=1) then storeflag:=true; if storeflag then begin selectedtextlist.add(oldfileline); if pos('MATCHTHIS',oldfileline)>0 then foundit:=true; if (pos('END', oldfileline)=1) then begin storeflag:=false; if foundit then begin if selectedtextlist.count>0 then for loop:=0 to selectedtextlist.count-1 do begin writeln(newfile,selectedtextlist.strings[loop]); end; foundit:=false; end; selectedtextlist.clear; end; end; end; closefile(oldfile);
except begin showmessage('Soemthing is wrong'); end; end; CloseFile(newfile); selectedtextlist.free; end;
Støv, fibre og metalliske partikler kan påvirke både uptime, levetid og driftssikkerhed. Derfor arbejder flere datacentre systematisk med contamination control.
Du laver et svar selv og tildeler de allokerede points (tror jeg nok).
I øvrigt har jeg følgende kommentarer til din procedure:
- TStringList har en SaveToFile som du kan bruge istedet for din for-next. - Du bør have CloseFile og SelectedTextList..list.Free inde i en try-finally - Hvad er lettest at læse detteeretlangtogtungtvariabelnavn eller DetteErEtLangtOgTungtVariabelnavn? Synes bedst om den sidste... Brug de store bogstaver (med omtanke). Der er ingen grund til at det ligner noget C'sk ;-)
Har rettet lidt i dit eksempel (funktionaliteten er vist den samme)
var oldfile: TextFile; st : string; StoreFlag: boolean; FoundIt: boolean; SelectedTextList: TStringList; begin StoreFlag := false; FoundIt := false;
SelectedTextList := TStringList.Create;
AssignFile(oldfile,'c:\t\oldtextfile.txt'); Reset(oldfile); try try while not eof(oldfile) do begin readln(oldfile, st); if pos('START', st) <> 0 then StoreFlag := true;
if StoreFlag then begin SelectedTextList.Add(st);
if pos('MATCHTHIS', st) <> 0 then FoundIt := true;
if (pos('END', st) <> 0) then begin StoreFlag := false;
if FoundIt then begin if SelectedTextList.Count > 0 then SelectedTextList.SaveToFile('c:\t\newtextfile.txt'); FoundIt := false; end; SelectedTextList.Clear; end; end; end; // while except on e: exception do ShowMessage('Something''s wrong'#13#10 + e.Message); end; // try finally CloseFile(oldfile); SelectedTextList.free; end; // try
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.