我以前读过XML或CSV,但我从未见过像EDI这样的东西.
如何阅读此文件并获取我需要的数据?我看到像〜,REF,N1,N2,N4这样的东西,但不知道这些东西是什么意思.
我见过关于x12的事情,但不知道那是不是我有什么,我该怎么说?
- 更新
谢谢大家快速回复.有谁知道我可以在.Net中使用的解析器?从长远来看,我将把这个EDI文件转换为CSV文件...
我经常需要登录到几台服务器中的一台并转到这些机器上的几个目录中的一个.目前我做了这样的事情:
localhost ~]$ ssh somehost Welcome to somehost! somehost ~]$ cd /some/directory/somewhere/named/Foo somehost Foo]$
我有脚本可以确定我需要进入哪个主机和哪个目录,但我无法找到一种方法来做到这一点:
localhost ~]$ go_to_dir Foo Welcome to somehost! somehost Foo]$
有一个简单,聪明或任何方式来做到这一点?
我在网上看到微软正在考虑以当前形式从LINQ-To-SQL转移,因为它不是很成功.
我想要尽可能多的意见,因为我是.NET的新手,并希望为我工作的地方选择最佳路线.
我有一个数据库表,可以包含许多记录,我想计算表中的当前总数.我打算做一个简单的事情:
DataContext.Table.Count(c => c.condition);
Run Code Online (Sandbox Code Playgroud)
直到我意识到返回类型Count是int.如果表中包含的值多于32位可表示的值,该怎么办?我怎么算他们?
当我们谈论那种规模时,我应该以不同的方式计算它们吗?
我有一个SIP应用程序需要发送UDP数据包来设置SIP呼叫.SIP具有应对传递失败的超时机制.我希望能够做的另一件事是检测UDP套接字是否已关闭,以便必须等待SIP使用的32s重新传输间隔.
我所指的情况是,尝试发送到UDP套接字导致远程主机生成ICMP目标无法访问的数据包.如果我尝试将UDP数据包发送到已启动的主机但端口未侦听,我可以看到ICMP消息通过数据包跟踪器返回,但问题是如何从我的C#代码访问该数据?
我正在玩原始套接字,但尚未能够获得我的程序接收的ICMP数据包.即使ICMP消息到达我的PC,下面的示例也从未收到数据包.
Socket icmpListener = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.Icmp);
icmpListener.Bind(new IPEndPoint(IPAddress.Any, 0));
byte[] buffer = new byte[4096];
EndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0);
int bytesRead = icmpListener.ReceiveFrom(buffer, ref remoteEndPoint);
logger.Debug("ICMPListener received " + bytesRead + " from " + remoteEndPoint.ToString());
Run Code Online (Sandbox Code Playgroud)
下面是一个wireshark跟踪,显示ICMP响应进入我的PC,尝试从我知道它没有收听的端口上发送UDP数据包从10.0.0.100(我的PC)到10.0.0.138(我的路由器).我的问题是如何利用这些ICMP数据包来实现UDP发送失败而不是仅仅等待应用程序在任意时间段后超时?

我在项目中有一个要求,我正在研究一个JavaScript,它允许用户平移和放大和缩小大图像.
不幸的是,我使用JavaScript的经验有限.
有人知道那里的免费脚本会满足我的要求吗?
我正在开发一个支持多种编程环境的库,如VB6和FoxPro.我必须坚持C约定,因为它是最低的共同点.现在我对这个风格有疑问.
假设函数进程输入并返回一个字符串.在此过程中,可能会发生错误.目前提出的风格是这样的:
int func(input params... char* buffer, unsigned int* buffer_size);
Run Code Online (Sandbox Code Playgroud)
这种风格的好处是原型中包含了所有内容,包括错误代码.并且可以避免内存分配.问题是该功能非常冗长.并且因为buffer_size可以是any,所以需要更多的代码来实现.
另一种选择是返回char*,并返回NULL以指示错误:
char* func(input params...);
Run Code Online (Sandbox Code Playgroud)
此样式需要调用者删除缓冲区.内存分配是必需的,因此服务器程序可能会遇到内存碎片问题.
第二个选项的变体是使用线程局部变量来保存返回的指针char*,这样用户就不需要删除缓冲区.
你喜欢哪种风格?还有原因吗?
我有下表:
CREATE TABLE [dbo].[EntityAttributeRelship](
[IdNmb] [int] IDENTITY(1,1) NOT NULL,
[EntityIdNmb] [int] NOT NULL,
[AttributeIdNmb] [int] NOT NULL,
[IsActive] [bit] NOT NULL CONSTRAINT [DF_EntityAttributeRelship_IsActive] DEFAULT ((0)),
CONSTRAINT [PK_EntityAttributeRelship] PRIMARY KEY CLUSTERED
([IdNmb] ASC) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)
表中的一部分数据看起来像这样:
IdNmb EntityIdNmb AttributeIdNmb IsActive
1 22 7 0
2 22 8 0
3 22 9 0
4 22 10 1
Run Code Online (Sandbox Code Playgroud)
我想添加一个约束,以确保没有人添加或更新记录以使IsActive = 1,如果已存在EntityIdNmb的记录,其中IsActive = 1.
我该怎么做呢?
我写了一个小python程序作为个人实用程序来帮助我进行一些重构.它类似于unix替换,除了它支持正则表达式并对目录中的所有文件和(可选)所有子目录进行操作.
问题是我没有替换到位.我打开文件,将内容传递到内存,然后覆盖文件,如下所示:
file = open('path/to/file','r')
in_string = file.read()
file.close()
# ...
#Processing logic
# ...
file = open('path/to/file','w')
file.write(out_string)
file.close()
Run Code Online (Sandbox Code Playgroud)
除了显而易见的性能/内存问题,这是合法的,但对我的使用并不是一个问题,这个方法还有另一个缺点.SVN吓坏了.事后我可以做一些复制和粘贴解决方法来修复svn在提交时抛出的校验和错误,但它使得实用程序毫无意义.
有一个更好的方法吗?我猜测如果我正在编辑文件就不存在任何问题.我该怎么做?
.net ×2
c# ×2
linq-to-sql ×2
alter-table ×1
api ×1
bash ×1
c ×1
c++ ×1
constraints ×1
edi ×1
html ×1
icmp ×1
javascript ×1
linq ×1
python ×1
scripting ×1
shell ×1
sql ×1
sql-server ×1
ssh ×1
svn ×1
wpf ×1