Wyzwanie:
Wprowadź tekst z jednego pliku i wyślij go do innego. Rozwiązanie powinno być kompletną, działającą funkcją.
Uwaga: jest to pytanie trollujące kod . Proszę nie brać poważnie pytania i / lub odpowiedzi. Więcej informacji tutaj .
popularity-contest
code-trolling
Społeczność
źródło
źródło
Odpowiedzi:
do
Istotą posiadania wielu języków programowania jest to, że musisz użyć odpowiedniego narzędzia do pracy.
W takim przypadku chcemy skopiować bajty z jednego pliku do drugiego.
Chociaż moglibyśmy użyć czegoś wymyślnego, takiego jak bash lub rubin, lub poddać się potędze ASM, potrzebujemy czegoś szybkiego, dobrego z bitami i szybkiego.
Oczywistym wyborem jest C.
Najprostszym sposobem na zrobienie tego byłoby:
Jest to złe, ponieważ będzie czytać śmieci na temat takich rzeczy jak cygwin, jest całkowicie chiński dla początkującego, przestraszy go, gdy zda sobie sprawę, że to wołanie o pomoc, i oczywiście, ponieważ C.
źródło
#define VERY filename1
#define NOT filename2
#define _ 1
, możesz zrobić(;_;)
z pętlą for, aby wyglądała jak buźka.#define LOL fclose
made my day#define LOL fclose
, które nigdy nie jest używane, jest jednak moim arcydziełem.sh
Podoba mi się prostota tego.
Naprawdę działa poprawnie tylko wtedy, gdy
File1.txt
zawiera „Plik1.tekst” ...źródło
File2.txt
, a nie rzeczywistą zawartośćFile1.txt
AutoHotKey
Najpierw należy otworzyć pliki w notatniku lub innym edytorze tekstów, który powoduje, że nazwy okien zaczynają się od nazw plików. Następnie kopiuje zawartość pliku 1 do schowka (dosłownie, używając ctrl+ c) i wkleja go do pliku 2, nadpisując wszystko, co się w nim znajduje, i zapisuje.
Rozwiązuje problem, ale w bardzo niewygodny i całkiem bezużyteczny sposób. Prawdopodobnie łatwiej byłoby po prostu skopiować i wkleić ręcznie.
źródło
Jak wszyscy wiedzą, perl jest bardzo dobry do manipulowania plikami. Ten kod skopiuje zawartość jednego pliku do drugiego i zrobi to z dodatkową redundancją dla zachowania dokładności.
Aby być bezpiecznym, najpierw przetestuj to na małym pliku. Po przekonaniu się o jego poprawności możesz bez obaw wprowadzić go do produkcji w celu użycia na bardzo dużych plikach.
źródło
DO#
Aby to osiągnąć, musisz wykonać kilka czynności:
Oto kod:
źródło
W czterech prostych krokach:
lpr
do tego polecenia.źródło
Jawa
Wiele osób uważa, że warto próbować używać wyrażeń regularnych lub oceniać łańcuchy w celu skopiowania ich z jednego pliku do drugiego, jednak ta metoda programowania jest niedbała. Po pierwsze używamy Javy, ponieważ OOP pozwala na większą przejrzystość naszego kodu, a po drugie używamy interaktywnego interfejsu do odbierania danych z pierwszego pliku i zapisywania go do drugiego.
Teoretycznie (nie testowałem tego) powoduje to, że użytkownik ręcznie wprowadza treść pierwszego pliku (słowo po słowie), a następnie zapisuje go do drugiego pliku. Ta odpowiedź jest grą na dwuznaczność pytania, co to znaczy „tekst wejściowy z jednego pliku”, a zwariowane nazwy zmiennych (generowane losowo) były tylko dla dodatkowej zabawy.
źródło
sh
Jak wskazał @Shingetsu, trzeba użyć odpowiedniego narzędzia do właściwej pracy. Kopiowanie zawartości z jednego pliku do drugiego to stary problem, a najlepszym narzędziem do takich zadań zarządzania plikami jest używanie powłoki.
Jedno polecenie powłoki, które każdy programista ma do zapoznania się z samym sobą jest wspólnym
tac
polecenia używane do tac k zawartość plików razem, jeden po drugim. Jako szczególny przypadek, gdy tylko jeden plik jest przekazywany, jest po prostu wypluwany jak jest. Następnie po prostu przekierowujemy dane wyjściowe do odpowiedniego pliku:Prosty i konkretny, żadnych sztuczek!
źródło
Perl
Zawiera program antywirusowy.
źródło
Pakiet Windows
(ponieważ musisz mieć ten rzekomo „martwy” język ;-)
Po prostu nazywaj to jako
copy.bat file1.txt file2.txt
(lub jakikolwiek inny plik)Gdyby tylko zachował podziały linii ...
źródło
setlocal enabledelayedexpansion
iset thisline=!thisline!%%I
działa tylko w Windows CMD. W DOS musi działać prostoset thisline=%thisline%%%I
Linq
Wydajność nie jest ważna, poprawność jest. Pisanie w funkcjonalnym stylu daje bardziej przejrzysty i mniej podatny na błędy kod. Jeśli wydajność okaże się problemem, ostatnią linię ToArray () można pominąć. I tak lepiej być leniwym.
źródło
Pogawędka
Istnieje jeszcze biblioteka przeniesiona do kilku dialektów Smalltalk (Visualworks, Gemstone Squeak / Pharo, ...) o nazwie Xtreams, co sprawia, że to zadanie jest więcej niż łatwe.
FileStream byłby tak prosty jak
'foo' asFilename reading
i'bar' asFilename writing
na przykład w Visualworks, ale jest specyficzny dla dialektu.Z tego powodu demonstruję algorytm z wewnętrznymi strumieniami neutralnymi dla dialektu.
Dobrym pomysłem może być przetwarzanie każdego kodu bajtowego w kolejności rosnącej:
Oczywiście możliwe jest również przetwarzanie w losowej kolejności, ale obawiam się, że sprawia to, że kod jest nieco zbyt zwarty:
EDYTOWAĆ
Ach, głupie mnie, nie widziałem rozwiązania log2:
źródło
GRZMOTNĄĆ
na terminalu 1 z adresem IP 192.168.1.2
na terminalu 2 z adresem IP 192.168.1.3
Spowoduje to zaszyfrowanie i wysłanie
mydocument.docx
, za pomocąnc
igpg
, do terminala nr 1 Musisz wpisać hasło na terminalu nr 2, a następnie na terminalu nr 1źródło
C ++
Jest to nieco oparte na odpowiedzi Shingetsu , ale nie mogłem się oprzeć. Jest w pełni funkcjonalny, ale żaden uczeń nie podałby go swojemu nauczycielowi (mam nadzieję). Jeśli będą chcieli przeanalizować kod, będą w stanie rozwiązać swój problem:
źródło
Pyton
Wprowadza tekst z pliku1.txt i wysyła go do pliku2.txt
Jest kompletny i „działa”. Nikt nie powiedział nic o pisaniu danych wejściowych w obecnej formie. Wszystkie znaki wejściowe pojawiają się na wyjściu. „getchar” jest częścią trollingu.
źródło
Mathematica, 44 znaki
Realizacja
Wykonanie
Czek
źródło
CopyFile
funkcję.DELPHI / PASCAL (skopiuj z f1.txt do f2.txt)
źródło
MASM
Z pewnością nie jestem ekspertem od montażu, ale poniżej znajduje się mój mały fragment:
źródło
C ++
Czy zauważyłeś bit „kompletna, działająca funkcja”? Tak czy inaczej, oto moja odpowiedź:
źródło
Lua
Uruchom z plikiem wejściowym zawierającym
text from one file and output it to another. Solution should be a complete, working function.
.źródło
PHP
źródło
#! / bin / sh
Wygląda rozsądnie, ale raczej nieefektywnie, jeśli plik jest duży.
Współpracuje z plików ASCII z wyjątkiem, gdy plik wejściowy zawiera
-n
,-e
lub-E
. (Ponieważ są one interpretowane jako argumenty przezecho
.)Nie generuje poprawnych danych wyjściowych dla wszystkich (większości) plików binarnych.
(Korzystanie z funkcji
printf "%s" "$contents" > output
under/bin/bash
działa trochę lepiej, ale nadal powoduje zmniejszenie NULL bajtów).No i oczywiście to nie działa dla nazw plików_zawierających_przestrzeni. Ale i tak takie pliki są nielegalne w ramach UNIX% 20policy.
źródło