我正在将数据从CxDBGrid导出到Excel文件.我能够创建文件并在其中复制数据,但我在列格式化方面遇到了麻烦.由于我从数据库中提取数据,我希望电子表格能够反映出类型:NUMBER,VARCHAR2,DATE等等.我在视觉上创建了一个宏,去寻找VBA代码,并在Delphi项目中复制它:
sheet.Columns[K+2].NumberFormat := '0,000'; //Number
sheet.Columns[K+2].NumberFormat := '@'; //Text
sheet.Columns[K+2].NumberFormat := 'm/d/yyyy'; //Date
Run Code Online (Sandbox Code Playgroud)
数字格式在大多数情况下都可以正常工作,但其他两个则没有.当我打开生成的文件时,文本列显示为"Custom"类型,每个单元格显示"-64".如果我去编辑一个单元格,那么实际上就是正确的值.日期是另一个问题:数据库的格式是dd/mm/yyyy,如果我按原样将其提供给Excel,它会搞得一团糟.我尝试设置正确的格式,但Excel无法识别它.
有线索吗?
我也设置了列宽.这完美无瑕.
我正在寻找geoip数据库(城市,国家,组织)查询一堆IP地址.我查看了http://www.maxmind.com/download/geoip/api/pascal/Sample.pas并对其进行了修改:
function LookupCountry(IPAddr: string) : string;
var
GeoIP: TGeoIP;
GeoIPCountry: TGeoIPCountry;
begin
GeoIP := TGeoIP.Create('C:\Users\Albert\Documents\RAD Studio\Projects\Parser\geoip\GeoIP.dat');
try
if GeoIP.GetCountry(IPAddr, GeoIPCountry) = GEOIP_SUCCESS then
begin
Result := GeoIPCountry.CountryName;
end
else
begin
Result := IPAddr;
end;
finally
GeoIP.Free;
end;
end;
Run Code Online (Sandbox Code Playgroud)
但我对超过50'000个查询没有任何结果.我知道在使用csv时必须操作地址,但我有二进制db版本.我错过了什么?
谢谢!
我有以下XML TextView布局:
<TextView
android:layout_width="100dp"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:id="@+id/txt0027_PDY911"
android:tag="canPlot"
style="@style/STD_Block_BEL.FieldLabel"
android:text="0.00" />
Run Code Online (Sandbox Code Playgroud)
绑定了一个onTouch()事件。
在onTouch()中,我需要获取textview的ID(txt0027_PDY911)作为字符串,以便对其进行查询。
getId()返回一个整数-如何获取字符串?
谢谢
我正在实现本地缓存以加速DNS查找(IP->主机名).缓存从CSV文件("1.1.1.1host.example.com")加载到具有两个字段的TStringList中:
TStringList[0] := IPAddress;
TStringList[1] := HostName;
Run Code Online (Sandbox Code Playgroud)
因为我将通过IP查询TStringList,所以我想要对第一个字段进行排序:
TStringList.sorted := True;
Run Code Online (Sandbox Code Playgroud)
这会照顾它,以便我可以更快找到
IPResolved:=TStringList[TStringList.IndexOf('1.1.1.1'),1];
Run Code Online (Sandbox Code Playgroud)
?
谢谢!
在主单元中,我定义了一个函数,然后由具有适当参数的另一个表单调用:
unit Parser;
interface
uses
[...]
function SaveGridLayoutToReg(ASaveViewName: AnsiString): Integer;
type
TForm1 = class(TForm)
[...]
function SaveGridLayoutToReg(ASaveViewName: AnsiString): Integer;
end;
[...]
function TForm1.SaveGridLayoutToReg(ASaveViewName: AnsiString): Integer;
var
AStoreKey: string;
AOptions: TcxGridStorageOptions;
LayoutRegistryKey: TRegistry;
begin
AStoreKey := 'Software\KTRT\Stats';
AOptions := [];
cxGrid1TableView1.StoreToRegistry(AStoreKey, True, AOptions, ASaveViewName);
LayoutRegistryKey.RootKey:= HKEY_CURRENT_USER;
if LayoutRegistryKey.OpenKey(AStoreKey+'\'+ASaveViewName, false) then
Result := 0
else
Result := -1;
end;
Run Code Online (Sandbox Code Playgroud)
在另一种形式:
[...]
uses Parser;
procedure TForm3.Button1Click(Sender: TObject);
var
LayoutRegistryKey: TRegistry;
AStoreLocation : AnsiString;
AStoreKey: string;
begin
AStoreLocation := Edit1.Text;
if Parser.SaveGridLayoutToReg(AStoreLocation) <> 0 …Run Code Online (Sandbox Code Playgroud) delphi ×4
delphi-xe2 ×3
android ×1
eclipse ×1
excel ×1
geoip ×1
quantumgrid ×1
textview ×1
tstringlist ×1