Le défi:
Saisissez le texte d'un fichier et exportez-le dans un autre. La solution doit être une fonction complète et fonctionnelle.
Remarque: Il s'agit d'une question de contrôle de code . Veuillez ne pas prendre la question et / ou les réponses au sérieux. Plus d'informations ici .
popularity-contest
code-trolling
Communauté
la source
la source
Réponses:
C
L'intérêt d'avoir plusieurs langages de programmation, c'est que vous devez utiliser le bon outil pour le travail.
Dans ce cas, nous voulons copier des octets d'un fichier à un autre.
Bien que nous puissions utiliser quelque chose de fantaisiste comme bash ou rubis, ou tomber sous la puissance d'ASM, nous avons besoin de quelque chose de rapide, bon avec des bits et rapide.
Le choix évident est C.
La façon la plus simple de le faire serait la suivante:
C'est mal parce qu'il lira des ordures sur des choses comme cygwin, est complètement chinois pour un débutant, lui fera peur quand il réalisera que c'est un appel à l'aide et, évidemment, parce que C.
la source
#define VERY filename1
#define NOT filename2
#define _ 1
, vous pouvez faire(;_;)
avec la boucle for, pour la faire ressembler à un smiley.#define LOL fclose
made my day#define LOL fclose
, qui n'est jamais utilisé est mon chef-d'œuvre.sh
J'aime la simplicité de celui-ci.
Ne fonctionne vraiment correctement que s'il
File1.txt
contient "File1.text" ...la source
File2.txt
, pas le contenu réel deFile1.txt
AutoHotKey
Vous devez d'abord ouvrir les fichiers dans le bloc-notes ou un autre éditeur de texte qui fait que les noms de fenêtre commencent par les noms de fichier. Ensuite, il copie le contenu de file1 dans le presse-papiers (littéralement, en utilisant ctrl+ c), et le colle dans file2, écrasant tout ce qu'il contient actuellement, et enregistre.
Résout le problème, mais d'une manière très gênante et assez inutile. Il serait probablement plus facile de simplement copier et coller manuellement.
la source
Comme tout le monde le sait, perl est très bon pour manipuler des fichiers. Ce code copiera le contenu d'un fichier dans un autre et le fera avec une redondance supplémentaire pour faire bonne mesure.
Pour être sûr, testez d'abord cela sur un petit fichier. Une fois que vous êtes convaincu de son exactitude, vous pouvez le mettre en production pour l'utiliser sur de très gros fichiers sans souci.
la source
C #
Pour ce faire, vous devez vous assurer de faire plusieurs choses:
Voici le code:
la source
En quatre étapes simples:
lpr
commande pour cela.la source
Java
Beaucoup de gens trouvent utile d'essayer d'utiliser des expressions régulières ou d'évaluer des chaînes afin de les copier d'un fichier à un autre, mais cette méthode de programmation est bâclée. Premièrement, nous utilisons Java parce que la POO permet plus de transparence dans notre code, et deuxièmement nous utilisons une interface interactive pour recevoir les données du premier fichier et les écrire dans le second.
En théorie (je ne l'ai pas testé), cela oblige l'utilisateur à saisir manuellement le contenu du premier fichier (mot par mot) puis à l'écrire dans le second fichier. Cette réponse est un jeu sur l'ambiguïté de la question de ce que cela signifie par «saisir du texte à partir d'un fichier», et les noms de variable fous (générés de manière aléatoire) étaient juste pour un amusement supplémentaire.
la source
sh
Comme l'a souligné @Shingetsu, il faut utiliser le bon outil pour le bon travail. La copie du contenu d'un fichier à un autre est un ancien problème, et le meilleur outil pour de telles tâches de gestion de fichiers utilise le shell.
Une commande shell que chaque programmeur doit se familiariser est la
tac
commande commune , utilisée pour tac k le contenu des fichiers ensemble, l'un après l'autre. Dans un cas particulier, lorsqu'un seul fichier est passé, il est simplement recraché tel quel. Nous redirigeons ensuite simplement la sortie vers le fichier approprié:Simple et direct, pas de trucs!
la source
Perl
Antivirus inclus.
la source
Lot Windows
(parce que tu dois avoir cette langue supposée "morte" ;-)
Vous appelez simplement cela comme
copy.bat file1.txt file2.txt
(ou tout autre fichier que vous voulez)Si seulement cela gardait les sauts de ligne ...
la source
setlocal enabledelayedexpansion
etset thisline=!thisline!%%I
fonctionne uniquement dans Windows CMD. Dans DOS doit fonctionner simplementset thisline=%thisline%%%I
Linq
L'efficacité n'est pas importante, l'exactitude l'est. L'écriture dans un style fonctionnel donne un code plus clair et moins sujet aux erreurs. Si les performances s'avèrent être un problème, la dernière ligne ToArray () peut être omise. Il vaut mieux être paresseux de toute façon.
la source
Smalltalk
Il existe une bibliothèque encore portée sur plusieurs dialectes Smalltalk (Visualworks, Gemstone Squeak / Pharo, ...) nommée Xtreams qui rend cette tâche plus que facile.
FileStream serait aussi simple que
'foo' asFilename reading
et'bar' asFilename writing
par exemple dans Visualworks, mais est spécifique au dialecte.Pour cette raison, je démontre plutôt l'algorithme avec des flux internes neutres en dialecte.
Une bonne idée pourrait être de traiter chaque code d'octet dans l'ordre croissant:
Bien sûr, il est également possible de traiter dans un ordre aléatoire, mais je crains que cela rend le code un peu trop compact:
ÉDITER
Ah stupide moi, je n'ai pas vu la solution log2:
la source
FRAPPER
sur le terminal # 1 avec l'IP, 192.168.1.2
sur le terminal # 2 avec l'IP, 192.168.1.3
Cela cryptera et enverra
mydocument.docx
, en utilisantnc
etgpg
, vers le terminal # 1 Vous devrez taper le mot de passe sur le terminal # 2, puis sur le terminal # 1la source
C ++
Ceci est quelque peu basé sur la réponse de Shingetsu , mais je n'ai pas pu résister. Il fonctionne pleinement, mais aucun élève ne le soumettrait à son professeur (j'espère). S'ils sont prêts à analyser le code, ils pourront résoudre leur problème:
la source
Python
Entre du texte à partir de file1.txt et le renvoie à file2.txt
C'est complet et "fonctionnel". Personne n'a dit quoi que ce soit sur l'écriture de l'entrée telle qu'elle est. Tous les caractères saisis apparaissent dans la sortie. "getchar" est la partie de pêche à la traîne.
la source
Mathematica, 44 caractères
la mise en oeuvre
Exécution
Vérifier
la source
CopyFile
.DELPHI / PASCAL (copie de f1.txt vers f2.txt)
la source
MASM
Je ne suis certainement pas un expert en assemblage, mais voici mon petit extrait:
la source
C ++
Avez-vous remarqué le bit "fonction complète et fonctionnelle"? Quoi qu'il en soit, voici ma réponse:
la source
Lua
Exécuter avec un fichier d'entrée contenant
text from one file and output it to another. Solution should be a complete, working function.
.la source
PHP
la source
#! / bin / sh
Semble raisonnable, mais plutôt inefficace si le fichier est volumineux.
Fonctionne très bien sur les fichiers ASCII sauf lorsque le fichier d'entrée contient
-n
,-e
ou-E
. (Parce que ceux-ci sont interprétés comme des arguments parecho
.)Ne produit pas la sortie correcte pour tous (la plupart) des fichiers binaires.
(Utilisation
printf "%s" "$contents" > output
sous/bin/bash
fonctionne un peu mieux, mais cela supprime toujours NULL octets.)Oh et bien sûr, cela ne fonctionne pas pour filenames_containing_spaces. Mais ces fichiers sont de toute façon illégaux sous la politique UNIX% 20.
la source