javascript - typescript içinde metin dosyasında döngü yapma


Yerel bir dosya flight.txt okudum

1 DFW BOM 2016-05-20 12:20 2016-05-21 02:40 1084.00 JetAirways 100
2 DFW DEL 2016-04-24 17:15 2016-04-25 07:20 1234.00 Lufthansa 100
3 DFW FRA 2016-06-05 13:30 2016-06-05 03:32 674.00 AmericanAirlines 100

TypeScript'te bir dosyayı okumak için kullanılan kod.

 populateFlightList() {
   let data = fs.readFileSync('flight.txt').toString('utf-8'); {
        let textByLine = data.split("\n")
        console.log(textByLine);

    };

Şimdi dosyadan okumak ve döngü ile verileri uçuş nesnelerine ayrıştırmak istiyorum; her yinelemede yeni bir nesne oluşturarak bunu bir arrayliste ekleyeceğim.

   try {
        Scanner fin = new Scanner(file);                
        while(fin.hasNext()) {
          int number = fin.nextInt();                 //flight numer
          String from = fin.next();                   //Departure airport
          String to = fin.next(); //Arrival airport
    }**Code in Java**

Bunu TypeScript'te nasıl yapabilirim?

Cevap #1

readline modülünü, verileri birer birer satır olarak okumak için kullanabilirsiniz. Verileri ayrıştırmak hâlâ manuel bir işlem olacaktır:

import * as fs from 'fs';
import * as rd from 'readline'

var reader = rd.createInterface(fs.createReadStream("W:\\tmp\\stack\\2\\data.txt"))

var data: Array<{ number: number; from: string; to: string}> = [];
reader.on("line", (l: string) => {
    var tokens = l.split(' ');
    var nr= parseInt(tokens[0]);
    var from = tokens[1];
    var to = tokens[2]
    console.log(`nr: ${nr} from ${from} to ${to}`);
    data.push({
        number: nr, from, to
    });
})
console.log(`Will be empty data has not yet been read ${data.length}` );

reader.on("close", ()=> {
    console.log(`Data has been read ${data.length}` );
    data.forEach(element => {
        console.log(`nr: ${element.number} from ${element.from} to ${element.to}`)
    });
})

line olayı her satır için bir kez tetiklenecektir. close olayı, tüm dosya okunduktan ve dosya kapatıldıktan sonra tetiklenecektir, bu noktada tüm veri kümesi mevcut olacaktır, bunu her seferinde line olayı gerçekleştiğinde bir giriş ekleyerek oluştururuz.

readline modülü hakkında daha fazla bilgi için dokümantasyona başvurun

İlgili makaleler