虽然有许多使用CVS,SVN和git的开源存储库,但我想知道Perforce是否有任何内置,因为我很高兴在家里使用它多年来的CM.
Perforce提供了一个公共软件仓库,但那里托管的项目似乎强烈面向Perforce.我正在做的工作与Perforce无关,我只喜欢他们的产品.该公司提供托管开源项目的免费许可,但我没有兴趣在网上维护我自己的服务器.
我需要在包装XML文档中嵌入任意(语法上有效)的XML文档.嵌入的文档应被视为纯文本,在解析包装文档时不需要是可解析的.
我知道" CDATA技巧 ",但如果内部XML文档本身包含CDATA段,我就不能使用它,我需要能够嵌入任何有效的XML文档.任何关于实现这一点的建议 - 或解决CDATA限制 - 将不胜感激.
我想读取几MB的二进制文件的内容并将其存储到缓冲区中.这是我的函数原型(如果需要我可以更改它):
procedure GET_BIN_CONTENT_FROM_PATH(PATH : in UNBOUNDED_STRING;
CONTENT : out UNBOUNDED_STRING);
Run Code Online (Sandbox Code Playgroud)
到目前为止,我已经尝试了两种方法,都使用Direct_IO包.在第一种方法中,我正逐字逐句地阅读文件; 它工作,但它非常缓慢.为了加快这个过程,我尝试用MB读取文件MB:
procedure GET_BIN_CONTENT_FROM_PATH (PATH : in UNBOUNDED_STRING;
CONTENT : out UNBOUNDED_STRING) is
BIN_SIZE_LIMIT : constant NATURAL := 1000000;
subtype FILE_STRING is STRING (1 .. BIN_SIZE_LIMIT);
package FILE_STRING_IO is new ADA.DIRECT_IO (FILE_STRING);
FILE : FILE_STRING_IO.FILE_TYPE;
BUFFER : FILE_STRING;
begin
FILE_STRING_IO.OPEN (FILE, MODE => FILE_STRING_IO.IN_FILE,
NAME => TO_STRING (C_BASE_DIR & PATH));
while not FILE_STRING_IO.END_OF_FILE (FILE) loop
FILE_STRING_IO.READ (FILE, ITEM => BUFFER);
APPEND (CONTENT, BUFFER);
end loop;
FILE_STRING_IO.CLOSE (FILE);
end GET_BIN_CONTENT_FROM_PATH;
Run Code Online (Sandbox Code Playgroud)
不幸的是,如果文件中剩余少于1MB,似乎不会发生READ操作.结果,大文件(> …
我是Ada的新手,但对于一般的编程并不陌生.我有受保护的数据对象的问题.正如我从示例和书中所理解的那样,您可以像对待任务一样调用受保护数据对象中的成员.
这是我的代码:
procedure ass4 is
protected type Signal_Object is
entry Wait;
procedure Signal;
function Is_Open return Boolean;
private
Open : Boolean := False;
end Signal_Object;
protected body Signal_Object is
entry Wait when Open is
begin
Open := False;
end Wait;
procedure Signal is
begin
Open := True;
end Signal;
function Is_Open return Boolean is
begin
return Open;
end Is_Open;
end Signal_Object;
begin
Signal_Object.Signal;
end;
Run Code Online (Sandbox Code Playgroud)
但是编译器不喜欢这个调用Signal_Object.Signal;,我得到以下错误
invalid use of subtype mark in expression or call
Run Code Online (Sandbox Code Playgroud)
那我错过了什么?
在我的Ada程序中,我想创建两种随机类型:范围内的随机整数和我定义的随机类型.在我的解释中,我有:
type servizio is (piscina, spa, entrambi);
type tempo is range 2..5;
Run Code Online (Sandbox Code Playgroud)
我试着创建随机实例如下:
package servizio_random is new Ada.Numerics.Discrete_Random(servizio);
use servizio_random;
G : Generator;
Run Code Online (Sandbox Code Playgroud)
和
package tempo_random is new Ada.Numerics.Discrete_Random(tempo);
use tempo_random;
Run Code Online (Sandbox Code Playgroud)
我想在我的主要任务中使用随机的"servizio",而在特定的任务(task type cliente (ID: cliente_id; tipo: servizio);)中随机的"节奏" .我的问题是:怎么做?我需要多个发电机还是只需一个?我试图将所有代码放在主要任务中但我得到的错误是生成器不可见(可能是因为我把两个"使用").此外,我试图将"节奏"随机地放在客户任务中并定义另一个生成器(在任务的范围内),但没有成功.如何使用函数Random(G)并选择使用随机类型("cliente"或"tempo")?这是怎么回事?谢谢.
我对Ada很新,我在下面看到Ada示例代码可以解释它的作用,
--
-- An array of array (which is different from a 2-d array).
--
with Gnat.Io; use Gnat.Io;
procedure Arr4 is
type CS is (G_Wiggins, M_Wiggins, Bennet, Woodall);
type CSMap is array (CS) of Integer;
A: array (1..3) of CSMap :=((4, 8, 17, 34),(9, 11, 3, -2),(6, 21, 2, 18));
I: Integer;
P: CS;
Row: CSMap;
begin
-- Print it the usual way.
for I in 1..3 loop
for P in CS loop
Put(A(I)(P));
Put(" ");
end loop;
New_Line; …Run Code Online (Sandbox Code Playgroud)