在Pascal中的txt文件中,每隔一行跳过一次

在Pascal中的txt文件中,每隔一行跳过一次,pascal,Pascal,这是我的代码(不要介意德语变量名): 如你所见,每一行都是空白的,当它试图把一个空行加载到我的列表中时,它崩溃了。 你可以添加一个额外的 RealLn < /代码>跳过空白行,这样你的代码就变成: ... WHILE NOT EoF(Textdatei) DO BEGIN Inc(i); // *** read non-empty line containing data *** Readln

这是我的代码(不要介意德语变量名):


如你所见,每一行都是空白的,当它试图把一个空行加载到我的列表中时,它崩溃了。

你可以添加一个额外的<代码> RealLn < /代码>跳过空白行,这样你的代码就变成:

      ...

      WHILE NOT EoF(Textdatei) DO
        BEGIN
          Inc(i);

          // *** read non-empty line containing data ***
          Readln(Textdatei,Dateiname);

          ...

          //Liste beschreiben
          Liste := AddElement(Name, pos0, KG, Liste);

          // *** skip empty line ***
          Readln(Textdatei);

        END;

      ...

注意,这假设非空行是文件中的奇数行,即第一行是非空的,第二行是空的,等等。如果是相反的,则移动
Readln(Textdatei)
的开始,而不是循环的结束

您好:)是的,我可以这样做,但我需要告诉编译器仍然忽略一个空行,我只是不知道跳过行或计数行或其他的语法。。对不起,我是一个初学者:/在谷歌上也找不到任何东西…谢谢,但不知怎么的,它不起作用。当第二次尝试通过循环时,它总是在此行崩溃:posTemp:=strotint(Temp);--但也许问题不在于空行,也许是其他原因导致mod测试完全有效。。。但是它仍然在那里崩溃..::谢谢你,但它不起作用。当我尝试这样做时,它所做的只是让我在编译器中键入一些内容,然后它就会崩溃。不幸的是,测试Mod的东西也不起作用,我不知道为什么:(我差一点就要完成我的第一个“大任务了”项目如果我得到while循环,在txt文件中每空、每奇或每秒钟跳过一行…@user7285912:my bad-我错过了文件描述符-抱歉-尝试固定版本…有趣的..现在它的作用是,它让我再按三次enter键直到崩溃…我可能错过了什么吗?:s有可能吗结束整个代码?XD唯一的变化是增加了这一行-您的代码中可能还有其他需要处理的错误。顺便说一句,如果您还没有学会使用调试器,那么现在是开始的好时机-它将让您逐步完成代码,并在代码执行时查看您的变量发生了什么。哦,它工作了!…I想想我的问题是什么,我在读文件的时候把它打开了。所以也许我的电脑当时找不到eof。我不知道,但是谢谢!
#1: Bisasam. // 11 kg 

#2: Bisaknosp. // 22 kg

#3: Bisaflor. // 33 kg
 
      ...

      WHILE NOT EoF(Textdatei) DO
        BEGIN
          Inc(i);

          // *** read non-empty line containing data ***
          Readln(Textdatei,Dateiname);

          ...

          //Liste beschreiben
          Liste := AddElement(Name, pos0, KG, Liste);

          // *** skip empty line ***
          Readln(Textdatei);

        END;

      ...