2011-11-23 74 views
1

我知道,這種語言已經在我們國家-.- 我得到的數據文件,它看起來像一個幾年前去世了,但仍需要在大多數學校:帕斯卡爾分割線轉化爲現實和字符串

  • 行數
  • 名字姓(實型數位)(另一種實型數位)

對於例如

  • 小子日光浴5.66 55.4
  • 巴特·辛普森55.7 45.4

,我需要創建的結果文件,它看起來像這樣:

  • 名姓(此前給出真實類型數字相乘)
  • 合計

例如,

  • 小子日光浴313.56
  • 巴特·辛普森2528.78
  • 總計:2842.34

我被困在試圖分裂行成字符串和真實的,即使我在書裏已經給在實施例中的所有數據是在單獨的線:

  • 字符串
  • d igit
  • 字符串
  • 位數

我無法在網絡上找到任何東西,希望你能幫助我。先謝謝你。

+0

帕斯卡的現代化身是德爾福(在Windows和OS-X )和所有其他平臺上的Lazarus。 – Johan

回答

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. 


+0

Omg,非常感謝!它完全有效!你是一個救世主!謝謝,非常感謝! – SinSoul