我有一个比较抽象的问题,但我会尽力清晰地陈述。这是一篇“橡皮鸭效应”文章,所以如果将其打出来对我有所帮助,我将不胜感激。然而,如果有回复,那就太棒了!
我有一些老的Fortran代码,目前我不能改变它(至少暂时不能),所以我只好使用其糟糕的输出结果。我使用Perl对其进行后处理,这些文件往往是文本和数字的混合体,非常专业化。你可能会说:“啊,这正是Perl能做到的。”是的,确实如此。但我最近发现自己编写的代码相当糟糕。
我的问题是关于实现这一目标时人们喜欢使用的通用结构。正如我所说,我不满意我选择的结构。
以下是我想到的一些伪代码结构:
上述代码的目标是将处理分成与差分ASCII文件对应的块-文件中没有太多的“标记”,因此条件(
无论如何,如果我的话激发了您的任何想法,我将不胜感激地听取它们。
谢谢。
我有一些老的Fortran代码,目前我不能改变它(至少暂时不能),所以我只好使用其糟糕的输出结果。我使用Perl对其进行后处理,这些文件往往是文本和数字的混合体,非常专业化。你可能会说:“啊,这正是Perl能做到的。”是的,确实如此。但我最近发现自己编写的代码相当糟糕。
我的问题是关于实现这一目标时人们喜欢使用的通用结构。正如我所说,我不满意我选择的结构。
以下是我想到的一些伪代码结构:
flag1 = 0;
flag2 = 0;
while (<INPUT>) {
if (cond1) {
do something [like parse and set a header];
flag1 = 1;
} else {
next;
}
if (flag1 == 1 && cond2) {
do something else [like process a block of data];
} else {
next;
}
}
上述代码的目标是将处理分成与差分ASCII文件对应的块-文件中没有太多的“标记”,因此条件(
cond1
,cond2
等)会参与其中。设置标志的目的是为了跟踪代码在文件中的进度,这是其中之一。
现在我想到一个更好的结构可能是
while (<INPUT>) {
do stuff;
}
while (<INPUT>) {
do other stuff;
}
无论如何,如果我的话激发了您的任何想法,我将不胜感激地听取它们。
谢谢。