Ionic (Angular) - прочитать файл и разобрать его содержимое - PullRequest
0 голосов
/ 17 января 2019

Я работаю над проектом, в котором я хочу прочитать содержимое из файла и хочу получить полезную информацию из его данных и отобразить его пользователю, например, предположим, у меня есть текстовый файл (.txt), в котором есть 10 такие строчки, как «притворство пошло в школу», «Рохан купил новую ручку» и т. д. Я знаю, что это глупый пример, но я просто хочу донести основную идею. Я хочу прочитать этот контент на Ionic и хочу показать его пользователю красивым и элегантным способом после некоторой манипуляции. Я использую плагин Cordova File Chooser, теперь хочу прочитать содержимое файла, как я уже упоминал выше. Любая помощь будет оценена, спасибо заранее:)

Я пытался http получить функцию, чтобы прочитать файл, но не знаю, как использовать его с выбранным файлом. Я сделал ниже функцию, и теперь я понятия не имею, как передать этот файл в качестве аргумента этой функции

public readFile(file) {
    this.http.get(file).pipe(map(res => res.text()))                
     .subscribe(data => {                         
      this.requests = data.split('\n');
      this.testtext = this.requests[20];
});

1 Ответ

0 голосов
/ 17 января 2019

Вот функция загрузки файла, которую вы можете использовать. Это использует FileReader. читать дальше

Добавьте это в файл компонента и используйте его в шаблоне, привязав его к событию.

Я добавил столько комментариев, сколько мне показалось бы полезным, но дайте мне знать, если вы запутаетесь в какой-либо строке.

public uploadFile(files: FileList) {
    let results = [];
    if (files && files.length > 0) {
      const file: File = files.item(0);//assuming only one file is uploaded
      console.log('Uplaoded file, Filename:' + file.name + 'Filesize:' + file.size + 'Filetype:' + file.type);
      const reader: FileReader = new FileReader();
      reader.readAsText(file);
      reader.onload = (e) => {
        const fileContent: string = reader.result as string;
        console.log('fileContent:' + fileContent);
        const lines: string[] = fileContent.split('\n'); //this depends on your line end character, I'm using \n in general
        //lines is an array of string, such as "Sham went to school", loop over it and process as you like
      };
    }
  }

Вы можете использовать его в своем шаблоне, например:

<input type="file"  (change)="uploadFile($event.target.files)">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...