从C#中的文本文件拆分数据

时间:2017-04-16 14:18:07

标签: c# filestream

如何从文本文件中分割数据,例如,我有这个文本文件

"tarek 5235263463 US"

在C ++中它就像

    string name , number , location;
    file >> name >> number >> location;

我怎样才能在C#中做同样的事情?

2 个答案:

答案 0 :(得分:1)

使用string.Split(char[], StringSplitOptions); char []参数可让您根据需要拆分多个字符。请参阅文档here

List<string> fileLines = File.ReadAllLines(@"C:\filepath.txt").ToList();

foreach(var fileLine in fileLines)
{
    var splitFileLine = fileLine.Split(new[] {" "}, StringSplitOptions.None);

    var name = splitFileLine[0];
    var number = splitFileLine[1];
    var location = splitFileLine[2];

    //save, output, whatever you want 
}

答案 1 :(得分:0)

假设您已经将文件内容作为字符串(它应该不是很难实现,如果它?)。然后你首先必须拆分字符串:

$codice

分割字符串现在包含您想要的信息,因此您现在需要做的就是:

#include <stdio.h>
#include <pthread.h>
#include <stdlib.h>

#define TRUE    1
#define FALSE   0

int N;
int global = 10;
int entering[100];
int number[100];

int max(int number[100]) {
    int i = 0;
    int maximum = number[0];
    for (i = 0; i < N; i++) {
        if (maximum < number[i])
            maximum = number[i];
        }
    return maximum;
    }

void lock(int i) {
    int j = 0;
    entering[i] = TRUE;
    number[i] = 1 + max(number);
    entering[i] = FALSE;
    for (j = 0; j < N; j++) {
        while (entering[j]);
        while (number[j] != 0 && (number[j] < number[i] || (number[i] == number[j]) && j < i)) {}
    }
}

void unlock(int i) {
    number[i] = 0;
}

void *fn(void *integer) {
    int i = (int) integer;
    lock(i);
    printf("\n\n-----------Process %d---------",i);
    printf("\nProcess %d is Entering Critical Section\n",i);
    global++;
    printf("%d is the value of global \n",global);
    printf("Process %d is leaving Critical Section\n",i);
    printf("----------------------------------\n\n");
    unlock(i);
}    


int main()
{
    printf("Enter Number of Process\n");
    scanf("%d",&N);
    int th[N];
    void *fn(void *);
    pthread_t thread[N];
    int i = 0; 
    for (i = 0; i < N; i++) {
        th[i] = pthread_create(&thread[i], NULL, fn, (void *)i); 
        pthread_join(thread[i], NULL);
    }
    return EXIT_SUCCESS;
}

那应该做你想做的事。