Pascal分裂成真实和字符串

时间:2011-11-23 15:31:18

标签: file split line pascal

我知道这种语言已经在几年前去世了,但在我们国家的大多数学校仍然需要这种语言 - .- 我收到了数据文件,看起来像是:

  • 行数
  • 姓名姓(真实姓名)(另一个真实姓名)

例如

  • 2
  • Brat Sunbather 5.66 55.4
  • Bart Simpson 55.7 45.4

我需要创建结果文件,如下所示:

  • 姓名姓氏(以前给出的实际数字乘以)

例如

  • Brat Sunbather 313.56
  • Bart Simpson 2528.78
  • 总计:2842.34

我一直试图将这条线分成字符串和真实的,即使在我在示例中给出的书中,所有数据都在单独的行中:

  • 字符串
  • 字符串

我在网上找不到任何东西,希望你能帮助我。提前谢谢。

1 个答案:

答案 0 :(得分:2)

这应该让你开始 - 我得到了阅读文件,分割线,并将字符串转换为实数:

Program Test;

var
    fileVar: Text;
    l: string[81];
    inputFilename: string[14];
    lCount: Integer;
    i: Integer;
    code: Integer;

    spacePos: Integer;

    firstName: string[100];
    secondName: string[100];

    num1: real;
    num2: real;
    product: real;

    s: string[100];

begin
    inputFilename := 'input.txt';
    Assign(fileVar, inputFilename);
    Reset(fileVar);

    Readln(fileVar, l);
    Val(l, lCount);

    Writeln('l count=', lCount);

    for i := 1 to lCount do
    begin
        Readln(fileVar, l);
        spacePos := Pos(' ', l);
        firstName := Copy(l, 0, spacePos);
        Delete(l, 1, spacePos);

        spacePos := Pos(' ', l);
        secondName := Copy(l, 0, spacePos);
        Delete(l, 1, spacePos);

        spacePos := Pos(' ', l);
        s := Copy(l, 0, spacePos - 1);
        Val(s, num1, code);
        Delete(l, 1, spacePos);

        Val(l, num2, code);

        WriteLn(firstName);
        Writeln(secondName);
        Writeln(num1);
        Writeln(num2);
    end;

    Close(fileVar);
end.