Guardar datos de un .txt en una estructura

Estoy intentando guardar datos de un archivo .txt en dos strings dinámicos, lo cuales están dentro de una estructura dinámica. Cuando compilo el programa en la consola si me salen los datos que deberían, pero después me salta un error. Pero cuando solamente relleno una sola variable string, no me sale ningun error.

 struct trabajadores{     char **nombre;      int edad; }*trab;  int main(){     int cont=0;     int i,j;     char aux;     char temp[50];     FILE *archivo;     archivo=fopen("Traducciones.txt","r+b");     if(archivo==NULL){         printf("\nNo se pudo abrir el archivo. \n");         exit(1);     }      while(feof(archivo)==0){         fgets(temp,50,archivo);         cont++;     }     rewind(archivo);     trab=(struct trabajadores*)malloc(cont*sizeof(struct trabajadores));     for(i=0;i<2;i++){         trab[i].nombre=(char**)malloc(2*sizeof(char*));     }      for(i=0;feof(archivo)==0;i++){         vaciar(temp);         aux='O';         for(j=0;aux!='-';j++){             aux=fgetc(archivo);             if(aux!='-'){                 temp[j]=aux;             }         }         copy(temp,i);         vaciar(temp);         aux='O';         for(j=0;aux!='-';j++){             aux=fgetc(archivo);             if(aux!='-'){                 temp[j]=aux;             }         }         copy_2(temp,i);         fgets(temp,50,archivo);         trab[i].edad=atoi(temp);     }      getch();     return 0; }      introducir el código aquí  void copy(char temp[],int i){     int j;     int n=strlen(temp)+1;     trab[i].nombre[0]=(char*)malloc(n*sizeof(char));     if(trab[i].nombre[0]==NULL){         printf("\nNo se pudo reservar memoria. \n");         exit(1);     }     strcpy(trab[i].nombre[0],temp);  } void copy_2(char temp[],int i){     int j;     int n=strlen(temp)+1;     trab[i].nombre[1]=(char*)malloc(n*sizeof(char));     if(trab[i].nombre[1]==NULL){         printf("\nNo se pudo reservar memoria. \n");         exit(1);     }     strcpy(trab[i].nombre[1],temp);  }  

Ya intente utilizar dos variables de tipo string, pero igualmente me saltaba el error, asi que opte por utilizar el string dinamico como una matriz. Pero aun asi da el error.

Problema en los manejo de archivos .txt

Tengo un problema a la hora de leer y escribir de un archivo de texto. No entiendo el porque no esta funcionado. Cuando compilo el programa todo me funciona bien hasta cuando llega el momento en el que el programa tiene que escribir en el archivo de salidas que me salta el error que le presento en la parte de abajo y no entiendo porque es que pasa eso. le dejo una muestra del código para que vean.


EL codigo

            try {                  reader = new FileReader(nameOfInputFile + ".txt");                 fileInput = new Scanner(reader);                  while (fileInput.hasNextLine()) {                     strLine = fileInput.nextLine();                     name = strLine;                     edad = Integer.valueOf(strLine);                      if (edad >= 21) {                         nameList[matchesCount] = name;                         matchesCount = matchesCount + 1;                          edadList[matchesCount] = edad;                         matchesCount = matchesCount + 1;                     }                 }                 fileInput.close();              } catch (IOException e) {                 System.out.println("Error mensaje los archivos " + e);             }             try {                  fileOutput = new PrintWriter(nameOfOutputFile + ".txt");                  for (int j = matchesCount - 1; j >= 0; j--) {                      System.out.println(nameList[j]);                     fileOutput.println(nameList[j]);                      System.out.println(edadList[j]);                     fileOutput.println(edadList[j]);                 }                 fileOutput.close();              } catch (IOException e) {                 System.out.println("Error mensaje los archivos " + e);             }         } 

}

El error que me esta tanto es el siguiente:

Error

Exception in thread "main" java.lang.NumberFormatException: For input string: "Luiz"         at java.lang.NumberFormatException.forInputString(Unknown Source)         at java.lang.Integer.parseInt(Unknown Source)         at java.lang.Integer.valueOf(Unknown Source)         at IntroManejoArchivos1.main(IntroManejoArchivos1.java:35) 

Prints information about a restaurant (provided by user input) using a .txt file

My code works, but not the way I want it to. If a user provides a string, even if the string doesn’t match a name in the array, it will print information about all 5 restaurants. If I put a break statement, it will only print the information for the first one (as I would expect it to).

Code:

#include <stdio.h> #include <malloc.h>  typedef struct restaurants{     char name[50];     char type[50];     float avg;     int rating; }restaurant;  int readRestaurantsFromFile(restaurant **restaurants, char fileName[]) {     int size, i;     restaurant *arr;     FILE *fp;     fopen_s(&fp, fileName, "r");     if (fp) {         fscanf_s(fp, "%d", &size);         arr = (restaurant *)malloc(sizeof(restaurant) * size);         for (i = 0; i < size; ++i) {             fscanf_s(fp, "%s", arr[i].name, sizeof(arr[i].name));             fscanf_s(fp, "%s", arr[i].type, sizeof(arr[i].type));             fscanf_s(fp, "%f", &arr[i].avg);             fscanf_s(fp, "%d", &arr[i].rating);         }         *restaurants = arr;         fclose(fp);     }     else {         printf("Can not open %s to read...\n", fileName);     }     return size; }  void printDetails(restaurant *arr, int size, char res_name) {     for (int i = 0; i < size; ++i) {         if (res_name = arr[i].name) {             printf("Food: %s\n", arr[i].type);             printf("Avg. Meal: $  %.2f\n", arr[i].avg);             printf("Rating: %d\n\n", arr[i].rating);         }     } }  int main() {     restaurant *arr;     int size = readRestaurantsFromFile(&arr, "C:\Users\Owner\source\repos\FedericoReadLab6Problem2\FedericoReadLab6Problem2\reviews.txt");     for (int i = 0; i < size; ++i) {         char buffer[50];         printf("Enter a restaurant: ");         char res_name = fgets(buffer, sizeof buffer, stdin);         printDetails(arr, size, res_name);     }     system("pause"); } 

Sample output (just for the first iteration):

Enter a restaurant: Chili's  Food: American Avg. Meal: $  10.95 Rating: 2  Food: American Avg. Meal: $  4.50 Rating: 1  Food: Breakfast Avg. Meal: $  9.50 Rating: 1  Food: AmericanizedItalian Avg. Meal: $  11.00 Rating: 1  Food: American Avg. Meal: $  6.75 Rating: 2 

Как сделать так, чтобы файл (например, .txt) нельзя было открыть для записи?

Я хочу сделать так, чтобы пользователь вводил данные в программе, и она записывала их в файл, т.е через программу доступ к файлу был, но, если пользователь самостоятельно откроет файл, то этот файл будет открыт только для чтения. Пока формулировал вопрос, появилась идея, как это сделать: В программе меняю доступ к файлу, разрешаю запись, записываю мои данные и снова запрещаю запись. В итоге пользователь может самостоятельно открыть файл только для чтения. Логика такая, верно?

Python – Como obter a saída da execução de um arquivo .py para um .txt

Eu tenho o seguinte comando:

python3 -u teste.py > saida.txt 2>&1

Este comando faz com que a saída da execução do arquivo de teste.py seja enviado para este arquivo saida.txt, caso saida.txt não exista ele é criado. O teste.py nunca para sua execução por se tratar de uma Thread, ou seja, o arquivo de teste.py está sempre tentando escrever novas informações na saida.txt, o que faz com que, ao tentar editar o arquivo saida.txt enquanto teste.pyestá em execução, perca-se a referência e ele para de preencher o arquivo de saida.txtcom as informações da execução do teste.py.

Ao falhar em tentar editar o arquivo saida.txt desta maneira, eu optei por outro método usando python3:

from threading import Thread from time import sleep import subprocess as sp  class teste(Thread):     def __init__(self):          Thread.__init__(self)          self.cmd  = ['python3 -u teste.py']         self.proc = sp.Popen(self.cmd, shell = True,                                      stdout=sp.PIPE,                                      stderr=sp.PIPE,                                      stdin=sp.PIPE)              def run(self):          while True:              sleep(1)              self.output = self.proc.stdout.read().decode('utf-8')             self.error  = self.proc.stderr.read().decode('utf-8')                     print(self.output)             print(self.error)              # Caso eu conseguisse ler a saída eu passaria estas informações             # Para um arquivo .txt  et = teste() et.start() 

Porém não obtive sucesso em ler a saída do teste.py através dos prints, não gerou-se resultados e nenhum tipo de erro.

O conteúdo do teste.py é bem simples, seria algo como:

from time import sleep  while 1:     print('saída')     sleep(1) 

OBS: As demasiadas citações ao teste.py e saida.txt foram intencionais para deixar claro o processo.

How to read a .txt file in a batch script on a network?

Im making a litle game (im bored) and i want it to work in a LAN network, my map files are in a shared file dans when i try to echo the contents nothing comes out.

Here is the code:

( echo %personage% ) > %path%p1.txt

set /p p1=<%path%p1.txt

set /p p2=<%path%p2.txt

set /p p3=<%path%p3.txt

set /p p4=<%path%p4.txt

set /p p5=<%path%p5.txt

set /p p6=<%path%p6.txt

set /p p7=<%path%p7.txt

set /p p8=<%path%p8.txt

set /p p9=<%path%p9.txt

set /p p10=<%path%p10.txt

set /p p11=<%path%p11.txt

set /p p12=<%path%p12.txt

echo %p1%%p4%%p7%%p10%

echo %p2%%p5%%p8%%p11%

echo %p3%%p6%%p9%%p12%

I hope you guys can help me because i really want to play this game with some classmates when i finish this project.

Thank you for your help in advance.

Passar Arquivo Grande para o Banco (.txt)

Tenho arquivo de 1M de linhas, e quero passar essas linhas para o Banco de Dados, e se eu for por linha a linha, demora em muito tempo, o que eu queria seria algo mais rápido para passar através de código, o mais rápido é utilizando este código…

string connString = "Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=" + diretorio + ";Extended Properties=\"Text;HDR=No;FMT=TabDelimited\""; 

Teriam como ajudar