procedure TFDrawingRelease.doReading; var f : TextFile; sRow : string; aSplitted: TArray<string>; begin { -- delete all rows } if QData.Active then begin QData.Close; QData.Open; end; { -- open file and read data (two columns divided by ";") } AssignFile( f, EFileName.Text ); try Screen.Cursor := crHourGlass; QData.DisableControls; reset( f ); while not eof( f ) do begin readln( f, sRow ); aSplitted := sRow.Split( [';'], 2 ); QData.Insert; { ..and return to first char _ } QDataItemid.AsString := aSplitted[0].Split( [ '_' ], 1 )[0]; QDataName.AsString := aSplitted[1]; QData.Post; end; finally closeFile( f ); QData.EnableControls; Screen.Cursor := crDefault; end; SetButtons; end;
Microsoft AX 2012, X++, C#, SQL server, SSRS, Java, JavaFX, Oracle, PL/SQL, Delphi - codes examples, step-by-step tutorials, experiences.
Showing posts with label delphi - generic. Show all posts
Showing posts with label delphi - generic. Show all posts
Monday, October 23, 2023
delphi - How to work with generic TArray
Using generic TArray with String type.
Tuesday, June 19, 2018
DELPHI - How to work with TDirectory (generic)
TDictionary is collection of key-value. In this example is it used for saving previous values - and its refreshing.
procedure TSQLParams.LoadForSQL( _iSQL_ID : integer ); var i : integer; b : boolean; vValue : variant; pParam : TSQLParam; pSQLParam : TSQLParam; pOldValues : TDictionary < string, variant >; begin pOldValues := TDictionary < string, variant >.Create; try { -- save old values of params } for i := 0 to self.Count - 1 do begin pParam := TSQLParam( Items[ i ] ); if not VarIsNull( pParam.vValue ) then pOldValues.Add( pParam.sIdent, pParam.vValue ); end; { -- clear all } clear; { - get info } if DB_SP.sp_params_by_sql_id.Active then DB_SP.sp__params_by_sql_id.Close; DB_SP.sp_params_by_sql_id.ParamByName( '@sql_id' ).AsInteger := _iSQL_ID; DB_SP.sp_sql_detail_params_by_sql_id.Open; DB_SP.sp_params_by_sql_id.First; while not DB_SP.sp_params_by_sql_id.Eof do begin { create new param } pSQLParam := TSQLParam( self.Add ); pSQLParam.sIdent := DB_SP.sp_params_by_sql_id.FieldByName( 'ident' ).AsString.ToLower; pSQLParam.vValue := Variants.null; { - try to find old saved value } b := pOldValues.TryGetValue( pSQLParam.sIdent, vValue ); if b then pSQLParam.vValue := vValue; { - next row } DB_SP.sp_params_by_sql_id.Next; end; finally pOldValues.Free; end; end;
Subscribe to:
Posts (Atom)