如果我对单元进行重大更改,我想更改其名称以明确这是一个不同的版本,并避免与其他存档版本混淆,例如:CSVUtils.PAS成为CsvUtilsNew.PAS
但是必须手动更改其他单位对它的所有引用,例如:
Unit ManiForm
Uses
CSVUtils
Run Code Online (Sandbox Code Playgroud)
变
Unit ManiForm
Uses
CsvUtilsNew
Run Code Online (Sandbox Code Playgroud)
这在复杂的项目中非常费力.
伊卡洛斯非常善于找到所有参考文献,但我找不到任何可以自动更新所有其他单位的工具.
有谁知道任何自动更新单位参考的工具?
非常感谢
我正在构建一个进行科学模拟的delphi应用程序.它的复杂程度越来越高,现在由许多单位和形式组成.
我每次跑步时都会开始出现EOutOFMemory错误.它似乎发生在我在函数中临时使用变量数组期间或之后.有可能提出一个非常愚蠢的问题,是"变种阵列"要求麻烦吗?(我可以将所有内容转换为字符串,但原则上的变体数组可以节省很多捏造的东西).
有问题的数组使用可能是:
Function TProject.GetCurrentProjParamsAsArray(LProjectName, LProjectType : ShortString): ArrayOfVariant;
Var
ArrayIndex : Word;
begin
SetLength (Result,54);
ArrayIndex := 0;
Result [ArrayIndex] := LProjectName; Inc(ArrayIndex);
Result [ArrayIndex] := LProjectType; Inc(ArrayIndex); // this structure makes it easier to add extra fields in the DB than hard coding the array index!!
Result [ArrayIndex] := FileTool.DateTimeForFileNames ; Inc(ArrayIndex);
Result [ArrayIndex] := SiteAndMet. SiteName ; Inc(ArrayIndex);
Result [ArrayIndex] := SiteAndMet. PostCode ; Inc(ArrayIndex);
Result [ArrayIndex] := SiteAndMet. MetFileNamePath ; Inc(ArrayIndex);
Result [ArrayIndex] := SiteAndMet. SiteLat …Run Code Online (Sandbox Code Playgroud) 这是我的问题,我正在整理一些我多年来修改过的旧代码并删除了redundent函数,
我可以用缓慢的方式来做它并将其注释掉,看看编译器是否会抛出错误.但我只是想知道是否有任何工具可以扫描代码并给出调用给定函数的函数列表.
我曾经看过ge-experts和icarus,但他们只在单位和类别的水平上执行此操作而不是功能.
欢迎任何建议,非常感谢,Brian
我在delphi中调用C++ DLL时遇到一些问题,DLL是用Labview编写的,但DLL语法都是C++,我认为主要问题是尝试将数据作为动态数组传递给函数(其中本来就是一个指针对吗?)
.h头文件中的函数定义是:
int16_t __cdecl NRELIVparExtract(
double voltageV[],
double currentA[],
int32_t nDataPoints,
uint16_t fitAlgorithim,
int16_t *twoOrLessPoints,
double *Voc,
double *Isc,
double *Vmp,
double *Imp
);
Run Code Online (Sandbox Code Playgroud)
我试图用来调用它的delphi代码是:
public { Public declarations }
end;
var
Function NRELIVparExtract (voltageV, currentA: Array of Double; nDataPoints :Integer;
fitAlgorithim :Word; Var twoOrLessPoints : SmallInt;
Voc, Isc, Vmp, Imp : Double): smallint ; CDecl;External IVparExtract_NREL.dll'
Run Code Online (Sandbox Code Playgroud)
胡说
procedure TFormMainIVanalysis.ExtractNREL(InputFileName : ShortString);
var
VoltArray, CurrArray : Array Of double;
blah
Begin
NRELresult := NRELIVparExtract(VoltArray,CurrArray,NpointsForFitting, fitAlgorithm, twoOrLessPoints, LVoc, LISc, LVmpp, …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用以下语法制作只包含不同值的表的副本:
SELECT DISTINCT *
INTO :TAB_DISTINCT
FROM TAB_MAIN
Run Code Online (Sandbox Code Playgroud)
但是IB并不喜欢INTO系列(用该系列评论建立一个好的计划)无效的令牌.动态SQL错误.SQL错误代码= -104.令牌未知 - 第2行,char -1.INTO.
我已尝试使用和不使用冒号,也有没有空的预先存在的TAB_DISTINCT并设置了字段.但没有雪茄.
任何人都有任何线索我在这里做的笨蛋语法错误?非常感谢,Brian
我需要阅读一些非常大的文本文件中的最后一行(从数据中获取时间戳).TStringlist是一个简单的方法,但它返回一个内存不足的错误.我正在尝试使用seek和blockread,但缓冲区中的字符都是无意义的.这与unicode有关吗?
Function TForm1.ReadLastLine2(FileName: String): String;
var
FileHandle: File;
s,line: string;
ok: 0..1;
Buf: array[1..8] of Char;
k: longword;
i,ReadCount: integer;
begin
AssignFile (FileHandle,FileName);
Reset (FileHandle); // or for binary files: Reset (FileHandle,1);
ok := 0;
k := FileSize (FileHandle);
Seek (FileHandle, k-1);
s := '';
while ok<>1 do begin
BlockRead (FileHandle, buf, SizeOf(Buf)-1, ReadCount); //BlockRead ( var FileHandle : File; var Buffer; RecordCount : Integer {; var RecordsRead : Integer} ) ;
if ord (buf[1]) <>13 then //Arg to integer …Run Code Online (Sandbox Code Playgroud) 在Delphi 2010中,我将2个无线电组放在一个表单上,然后为每个组添加了2个按钮.所以共有4个按钮.
问题是按钮的Checked属性就好像所有4个按钮都在同一个无线电组中一样.即,任何时候都只能检查4个按钮中的1个.在设计和运行时都是如此.
object RadioGroup1: TRadioGroup
Left = 14
Top = 314
Width = 177
Height = 35
Caption = 'Series 2 Axis'
TabOrder = 14
end
object RButtonLeftAxis: TRadioButton
Left = 91
Top = 326
Width = 41
Height = 17
Caption = 'Left'
TabOrder = 12
OnClick = RButtonLeftAxisClick
end
object RButtonRightAxis: TRadioButton
Left = 138
Top = 326
Width = 45
Height = 17
Caption = 'Right'
Checked = True
TabOrder = 13
TabStop = …Run Code Online (Sandbox Code Playgroud) 任何人都可以提醒我,允许早期版本的Delphi(例如2010)接受在更高版本中编写的具有domain.sub-domain命名系统的单元的技巧是什么
// Delphi XE2 & later version (comment out for 2010 & earlier):
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,system.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Buttons,
Vcl.ExtCtrls, Vcl.ComCtrls, System.Math;
Run Code Online (Sandbox Code Playgroud)
而不是D2010和早期的会议
// Delphi 2010 & earlier version (comment out for XE2 & later):
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls, ComCtrls, Math;
Run Code Online (Sandbox Code Playgroud)
我知道你可以在项目>选项中做些什么但是找不到它并且无法找到关于这个主题的早期论坛帖子.
有一段时间不需要在这里发帖了,但我在实现文件流时遇到了问题。将字符串写入文件流时,结果文本文件在每个字符之间插入了额外的空格
所以当运行这个方法时:
Function TDBImportStructures.SaveIVDataToFile(const AMeasurementType: integer;
IVDataRecordList: TIV; ExportFileName, LogFileName: String;
var ProgressInfo: TProgressInfo): Boolean; // AM
var
TempString: unicodestring;
ExportLogfile, OutputFile: TFileStream;
begin
ExportLogfile := TFileStream.Create(LogFileName, fmCreate);
TempString :=
'FileUploadTimestamp, Filename, MeasurementTimestamp, SerialNumber, DeviceID, PVInstallID,'
+ #13#10;
ExportLogfile.WriteBuffer(TempString[1], Length(TempString) * SizeOf(Char));
ExportLogfile.Free;
OutputFile := TFileStream.Create(ExportFileName, fmCreate);
TempString :=
'measurementdatetime,closestfiveseconddatetime,closesttenminutedatetime,deviceid,'
+ 'measuredmoduletemperature,moduletemperature,isc,voc,ff,impp,vmpp,iscslope,vocslope,'
+ 'pvinstallid,numivpoints,errorcode' + #13#10;
OutputFile.WriteBuffer(TempString[1], Length(TempString) * SizeOf(Char));
OutputFile.Free;
end;
Run Code Online (Sandbox Code Playgroud)
(这是一种精简的测试方法,仅写入标题)。“OutPutFile”生成的 csv 文件读取
'measuredmoduletempera ture等在写字板中查看时,但不是在excel、记事本等中查看。我猜测它的SizeOf(Char)语句在unicode上下文中是错误的,但我不确定什么是正确的插入此处。“ExportLogfile”似乎工作正常,但“OutPutFile”不行
从我在其他地方读到的内容来看,这是问题所在,而不是写字板,请参阅http://social.msdn.microsoft.com/Forums/en-US/7e040fd1-f399-4fb1-b700-9e7cc6117cc4/ unicode-to-files-and-console-vs-notepad-wordpad-word-etc?forum=vcgeneral
大家有什么建议吗?非常感谢,布莱恩
我正在尝试运行一些别人给我的C++代码.起初有一个istream文件链接断开,我通过添加包含路径修复了这个链接:
C:\Program Files (x86)\Embarcadero\RAD Studio\7.0\include\dinkumware
Run Code Online (Sandbox Code Playgroud)
代码现在编译但它不会在任何断点处停止,例如formcreate:
// Initialise the form and read in the module and inverter names.
void __fastcall TMain::FormCreate(TObject *Sender)
{
ifstream inits;
ifstream inverters;
ifstream modules;
char line[1000];
AnsiString FTO;
inits.open("PVSM.ini", ios::in);
if (inits.is_open())
{
inits.getline(line,1000);
AnsiString parmm(line);
ModDir = parmm.SubString(1,parmm.Pos(" ")-1);
inits.getline(line,1000);
AnsiString parmi(line);
InvDir = parmi.SubString(1,parmi.Pos(" ")-1);
inits.getline(line,1000);
AnsiString parmt(line);
MetDir = parmt.SubString(1,parmt.Pos(" ")-1);
inits.getline(line,1000);
AnsiString parms(line);
ShdDir = parms.SubString(1,parms.Pos(" ")-1);
inits.getline(line,1000);
AnsiString parmx(line);
ExpDir = parmx.SubString(1,parmx.Pos(" ")-1);
}
else // …Run Code Online (Sandbox Code Playgroud) delphi ×8
pascal ×5
ascii ×1
breakpoints ×1
c ×1
c++ ×1
c++builder ×1
debugging ×1
delphi-xe2 ×1
filestream ×1
firebird ×1
interbase ×1
labview ×1
radio-button ×1
sql ×1
tfilestream ×1
vcl ×1