Écriture dans le fichier sur une nouvelle ligne - page 2

 
EfremovSergey:
Comment supprimer une chaîne de caractères après l'avoir lue, existe-t-il un moyen simple de le faire ?

Lu par qui ? Si par vous, vous pouvez l'effacer avec vos mains. Si c'est par un robot, c'est inutile. Vous pouvez prendre une décision sur l'algorithme dès que vous recevez les données.

 
Valeriy Yastremskiy:

Lu par qui ? Si par vous, vous pouvez l'effacer avec vos mains. Si c'est par un robot, c'est inutile. Vous pouvez prendre une décision sur l'algorithme dès que vous recevez les données.

À mon avis, si vous ne vous débarrassez pas des informations déjà traitées, vous devez consacrer des ressources à leur réanalyse.

 
Ihor Herasko:

Dans la plupart des cas, il est préférable de lire l'ensemble du fichier, d'effectuer les modifications nécessaires en mémoire avec les données, puis d'écraser l'ensemble du fichier. C'est plus facile que de déplacer les données dans un fichier ouvert.

Si un EA lit un fichier dans son intégralité, un autre EA peut-il accéder au même fichier en même temps que le premier pour effectuer ses propres actions ?

Pour l'expérience, j'ai ouvert le fichier manuellement et j'ai essayé d'y écrire le Conseiller Expert ; l'information n'a été affichée qu'après réouverture.

Si j'essaie d'ouvrir le fichier manuellement, alors que le conseiller expert travaille sur le fichier, il refuse tout simplement de l'ouvrir, car le fichier est trop occupé par le processus.

Je ne comprends pas bien le règlement. Il n'est pas possible qu'en cas d'écrasement total, tout ce qui n'a pas encore été lu soit effacé ?

Un autre détail est que le fichier est consulté par différents conseillers experts et qu'ils ne savent pas si d'autres conseillers experts ont déjà lu les informations qui les concernent ou non, de sorte que le fichier entier peut être purgé.

 
EfremovSergey:

Si un EA lit un fichier dans son intégralité, un autre EA peut-il accéder au même fichier en même temps que le premier pour effectuer ses propres actions ?

Pour l'expérience, j'ai ouvert le fichier manuellement et j'ai essayé d'y écrire le Conseiller Expert ; l'information n'a été affichée qu'après réouverture.

Si j'essaie d'ouvrir le fichier manuellement, alors que le conseiller expert travaille sur le fichier, il refuse tout simplement de l'ouvrir, car le fichier est trop occupé par le processus.

Je ne comprends pas bien le règlement. Ne va-t-il pas arriver qu'en cas d'écrasement total, tout ce qui n'a pas encore été lu soit également effacé ?

Lors de l'ouverture du fichier, ajoutez le drapeau de co-lecture FILE_SHARE_READ, vous aurez probablement besoin du drapeau de co-édition/réécriture également. C'est à vous de décider si cela est nécessaire.

 
Alexey Viktorov:

Lors de l'ouverture d'un fichier, ajouter l'indicateur de co-lecture FILE_SHARE_READ, éventuellement aussi l'indicateur de co-édition/écriture. C'est à vous de décider si c'est nécessaire.

Ok. Merci beaucoup. Informations utiles.

Et comment supprimer une seule ligne, quelqu'un peut-il suggérer ?

 
EfremovSergey:

Ok. Merci beaucoup. Informations utiles.

Quelqu'un peut-il suggérer comment supprimer une seule ligne ?

Cela dépend de la ligne. Je ne l'ai pas fait, mais si je dois le faire, je commencerai par faire mes propres expériences. Qui veut expérimenter les idées des autres ? Sauf de l'oisiveté. Voyez s'il est possible de lire votre fichier dans la base de données SQLite, de supprimer cette chaîne et de la réécrire. S'il est possible d'écrire dans un tableau ou un tableau de structures, vous pouvez le faire aussi. Mais le problème est que les tableaux et les structures sont écrits dans des fichiers .bin, que rien d'autre ne peut ouvrir et regarder. En général, la fantaisie et l'expérimentation pour essayer d'obtenir un résultat.

 
Alexey Viktorov:

Cela dépend du type de corde. Je ne l'ai pas fait, mais si je dois le faire, je commencerai par faire mes propres expériences. Qui veut expérimenter les idées des autres ? Sauf de l'oisiveté. Voyez s'il est possible de lire votre fichier dans la base de données SQLite, de supprimer cette chaîne et de la réécrire. S'il est possible d'écrire dans un tableau ou un tableau de structures, vous pouvez le faire aussi. Mais le problème est que les tableaux et les structures sont écrits dans des fichiers .bin, que rien d'autre ne peut ouvrir et regarder. En somme, il s'agit d'un vol de fantaisie et d'expériences pour essayer d'obtenir un résultat.

Un fichier texte ordinaire... Si vous ne savez pas comment faire, la question disparaît d'elle-même, tout le monde l'expérimente. Le concept est superficiel, comme on dit, et ne nécessite pas de voix off supplémentaire.

 
EfremovSergey:

Quelqu'un peut-il suggérer comment supprimer une seule ligne ?

La méthode la plus simple consiste à lire le fichier, à traiter les données et à les réécrire. Modifier directement les données d'un fichier sans poser trop de questions n'est possible que caractère par caractère : lire le symbole - écrire à la place de l'information à supprimer. L'écrasement en blocs est plus difficile car différents éléments de données peuvent se chevaucher. Ainsi, tout cela est compliqué et l'on ne voit pas très bien pourquoi c'est nécessaire. Il n'y a vraiment pas tant de RAM que ça ? Mais alors le fonctionnement d'un grand nombre de programmes ne sera pas non plus possible.

 
EfremovSergey:

Un fichier texte brut... Si vous ne savez pas comment faire, alors la question disparaît d'elle-même, chacun expérimente du mieux qu'il peut, ce qu'il sait faire. Le concept est superficiel, comme on dit, et ne nécessite pas de voix off supplémentaire.

Eh bien, si vous pensez que l'information "fichier texte normal ..." est suffisante, alors vous venez de télépathes. Je ne connais pas l'adresse, vous pouvez la trouver vous-même. Pour une raison quelconque, vous ne tenez pas compte du fait que même les fichiers texte sont différents. Y a-t-il un terminateur de ligne, quel est le contenu du fichier : des chiffres ou du texte, et il peut y avoir d'autres nuances.

Igor vous a proposé le chemin le plus facile. Vous n'avez probablement pas aimé, alors je vous ai suggéré d'expérimenter. Et le concept n'est pour vous qu'en surface.........

 
Ihor Herasko:

La méthode la plus simple consiste à lire le fichier, à traiter les données et à les réécrire. Modifier directement les données du fichier sans poser trop de questions n'est possible que caractère par caractère : lire un caractère et l'écrire à la place de l'information à supprimer. L'écrasement en blocs est plus difficile car différents éléments de données peuvent se chevaucher. Ainsi, tout cela est compliqué et l'on ne voit pas très bien pourquoi c'est nécessaire. Il n'y a vraiment pas tant de RAM que ça ? Mais alors le fonctionnement d'un grand nombre de programmes ne serait pas non plus possible.

Voici le problème : il y a 10 programmes qui écrivent dans le fichier et 10 autres qui le lisent, vous ne voulez pas que chaque programme de lecture traite la totalité du tableau de données accumulées à tout moment.

Dossiers :
Copy.txt  1 kb
Raison: