作为一门入门语言,我在Python学习中大约有两周的时间.我在Zed的"艰难学习Python"中提到了一点,他建议:
使用while循环只能永远循环,这意味着可能永远不会.这仅适用于Python,其他语言则不同.
我已经用Google搜索了所有内容,引用了我能做的一切,但我在世界上找不到任何理由为什么这会成为Python中的惯例.是什么让它与众不同?
当我在10年前放弃编程时,我在VB工作,并经常被告知摆脱我的For循环并使用While循环.我是一个黑客(就像我今天,虽然我当时写了很多代码),所以我只是做了我被告知的事情,而不是质疑它.好吧,现在我在质疑它.这是速度问题吗?是否只是为了避免逃避无限?
我们这里有很多RPG程序,我们做了很多自动化测试,但是我们还没有很好地结合这两个.是否有很好的方法可以对RPG程序进行自动化测试 - 或者就任何其他ILE程序进行自动化测试?
我知道一个名为RPGUnit的项目,但这是它在2007年的最后一次更新.但是,它似乎仍在使用,因为RPG Next Gen目前正在进行一些包括它的工作.
你对这些经历有什么看法?还有别的东西,我缺少了,像谷歌找不到一些很棒的软件工具?
我对单元测试以及完整项目的集成测试很感兴趣.任何与jenkins等工具集成的东西都是受欢迎的.如果它涉及IBM的Rational Developer或System i Navigator,那也没关系.
我们正处于为RPG开发过程创建新测试计划的早期阶段,我不希望它从一开始就走向错误的方向.
integration-testing automated-tests unit-testing rpgle ibm-midrange
在RPG中使用嵌入式SQL时,通常会使用游标和dow-loop来处理结果中的所有行.循环中的条件以某种方式依赖于SQLCOD和/或SQLSTTSQLRPGLE程序中的一些全局可用变量?
但检查这些值的正确方法是什么?有人建议SQLCOD = 0别人not (SQLCOD = +100 or SQLSTT = '02000').一个失败的所有警告,另一个没有失败的一些错误,所以我不满足.
为了说明我对一些代码的处理:
Pmain B
D PI
Dmy_ds E DS extname(SOME_TABLE)
D qualified
/free
exec sql
DECLARE cur CURSOR FOR
SELECT *
FROM some_table;
exec sql
OPEN cur;
exec sql
FETCH cur
INTO :my_ds;
dow sql_found();
exec sql
FETCH cur
INTO :my_ds;
enddo;
exec sql
CLOSE cur;
/end-free
Pmain E
Psql_found B
D PI N
/free
// insert return statement here... …Run Code Online (Sandbox Code Playgroud) 使用pgFouine 1.2,PostgreSQL 9.1.3.
postgresql.conf设置:
log_min_duration_statement = 0
log_duration = on
log_line_prefix = '%t [%p]: [%l-1] '
log_statement = 'all'
lc_messages = 'C' # locale for system error message strings
lc_monetary = 'C' # locale for monetary formatting
lc_numeric = 'C' # locale for number formatting
lc_time = 'C' # locale for time formatting
Run Code Online (Sandbox Code Playgroud)
运行pgFouine时出错:
C:\Users\Razvan\Desktop\pgfouine-1.2>php pgfouine.php -file log > report.html
pgFouine did not find any valid PostgreSQL log line in your log file:
* check that PostgreSQL uses an english …Run Code Online (Sandbox Code Playgroud) 所以我用谷歌搜索,我已经搜索过,我已经尝试过...
如何获得PyCharm作为保存动作执行PEP8自动格式化的功能?
我发现我可以做Ctrl+ Alt+ L做自动格式化。我习惯了在Eclipse上执行保存操作,所以我想在PyCharm中使用它。在GoGland上很容易做到,那么为什么不在PyCharm中呢?
我迷路了,请帮助...
我有一个 udev 规则,可以/dev根据 USB 设备的序列号为它们生成符号链接(我有多个其他方面相同的设备,但需要可重现的设备端点)。
目前我需要为每个新序列号添加一条规则,如下所示:
SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", ATTRS{serial}=="S101", SYMLINK+="ttyS101"
SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", ATTRS{serial}=="S102", SYMLINK+="ttyS102"
...
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种使用单个规则来执行此操作的方法,所有可动态访问的都是%k、%n和%c,但我发现无法访问任何其他值。使用PROGRAM=""可能是一种方法,但我如何从那里访问 ATTRS?
我试过这个:
SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", ATTRS{serial}=="S101", PROGRAM="/bin/sh -c 'udevadm info /dev/%k | grep ID_SERIAL_SHORT= | cut -d= -f 2'" SYMLINK+="tty%c"
Run Code Online (Sandbox Code Playgroud)
但它看起来/dev/%k在程序运行时不可用,所以这也不起作用。
有什么办法可以用于ATTRS{serial}我的SYMLINK+=""吗?
我已经创建了一个简单的forEach函数,我试图理解为什么,当我运行它时myArray,即使我运行它也不会改变数组element*2.
function forEach(array, callback) {
for (var i = 0; i < array.length; i++) {
callback(array[i],i,array)
};
}
var myArray = [1,2,3]
forEach(myArray,function(element){element*2})
console.log(myArray)///[1,2,3]
Run Code Online (Sandbox Code Playgroud) 我需要为我的RPG程序中的现有物理文件创建一个新成员。我知道两种方式,我必须说,我都不喜欢:
QCMDEXC拨打电话ADDPFMADDPFM从RPG 调用并调用第一个涉及将必须解析的命令组合在一起,QCMDEXC这对执行者来说听起来并不合理(我知道,这里的扩展部分不是调用,而是成员的创建)-但是真正困扰我的是它不是我觉得很简单,但是相反,它很难遵循并且不是很美观。
第二个程序使用编译的程序,因此不涉及任何摘要和解析。同样,它在您的RPG代码中看起来并不可怕,因为它只是一个正常的过程调用。但是我必须创建一个额外的外部程序,该程序必须转移到将使用我的RPG程序的所有系统上。这也与我的审美意识产生了冲突,创建了一个额外的源代码和二进制文件,仅用于一个API调用。
有没有一种方法可以直接调用api,而无需调用QCMDEXC?或者是创建PF新成员的另一种RPGish方法?Google根本对我没有帮助。
谢谢
我们通过使用不同的liblists运行它们来控制as400上的程序所使用的对象.但是有些操作不能由此直接控制.因此,我的程序需要阅读liblist并决定其中的一些库,如何操作.
我找不到任何api来从程序中读取liblist条目.我期望的是,某种api允许我按优先级迭代liblist条目,或者按照liblist给出的顺序给我一个数组.如果可能的话,我更喜欢RPG或CL,但也可以使用其他ILE语言.
(如果你想知道,为什么我要这样做,我问另一个问题,解释我面临的封闭问题:如何在两个不同的库中创建一个DTAQ,由作业liblist控制? 但是liblist解析是解决这个问题的一种方法,也是一个单独的问题).
我试图从文本文件中提取一行的部分,并在UNIX平台下的C编程中将其输出到一个新文件中.例如,我有file1.txt如下:
设备:ABCDE1
日期:12/12/12
运营商= John Doe
我希望它在file2.txt中显示为:
ABCDE1,12/12/12,John Doe.
这是我到目前为止的代码,我得到了开头并写入文件部分,但是无法弄清楚如何在"Device:"之后提取信息,而不显示"Divice:"它自己.我的代码只复制file1的第一行,并将其放在文件2中:
#include "stdio.h"
main()
{
FILE *fs, *ft;
char ch ;
char file[100]="" ;
char Device [100];
char Date [80];
printf ("Enter file name and directory:");
scanf ("%s",&file);
fs = fopen (file, "r") ;
if ( fs == NULL )
{
puts ( "Cannot open source file" ) ;
exit( ) ;
}
ft = fopen ( "file2.txt", "w" ) ;
if ( ft == NULL )
{
puts ( "Cannot …Run Code Online (Sandbox Code Playgroud) rpgle ×4
ibm-midrange ×3
api ×1
c ×1
db2-400 ×1
embedded-sql ×1
environment ×1
javascript ×1
line ×1
linux ×1
pep8 ×1
pgfouine ×1
php ×1
postgresql ×1
profiling ×1
pycharm ×1
python ×1
text ×1
udev ×1
unit-testing ×1
unix ×1
usb ×1