私はレーマーです。
正直なところ、私はどのプログラミング言語のスーパープロフェッショナルでもありません。現代のWindows、Linuxカーネルの仕組みを理解していません。PDP11や、アセンブラーの知識で少しx86を理解していませんでした。それほど昔ではなく、理論を勉強することを気にしませんでした。その結果、私はそれらを本当に理解していません。 さらに、プロセッサがどのように動作するかについてはほとんど説明できません。FPGAとPICコントローラを研究所でのみプログラムしましたが、それはかなり前のことです。
しかし、何らかの理由で、私はクールな専門家が以前に通過する問題を解決することができます。
これに加えて、私はIT'shnikのWIDE知識の必要性の問題を提起したいと思います。 そして、IT'shnikだけではありません。
一部、この投稿は、PHPプログラマーがJavaScriptを必要としないという意見( ここのコメントなど)、アナリストはExcelでVisual Basicを使用できる必要はなく、マーケティング担当者はKotlerを読むだけでよいという意見の優位性に対する抗議であり、その後は彼は創造的である必要があります。 つまり 狭い専門分野に対して。 優れたスペシャリストがExcelのピボットテーブルの助けを借りてどのように驚くべきことをしていたかを見ましたが、残りのすべてはITスペシャリストが緊急にBIを実装し、必要なレポートを作成することを要求しました。
私は、このトピックを純粋で自然な形で取り上げることで、誰もがどこにも導かない非常に哲学的な会話に導くことを恐れています。
そのため、ここでは、頭を使って問題を解決し、超知識を持たない方法の例を示します。
問題。
かつて、テーブルをExcelからhtmlに頻繁に変換しなければならなかった従業員は、DreamWeaverなしでこれを行うことは非常に長く困難であると言いました。 一般的に、十分に高速に作業できる無料のエディタはありません。
私はこれを疑って、メモ帳++で何ができるかを見ることにしました。
問題は、Excelがタグ内に不要な属性を大量に生成し、コードを長時間、退屈に掃除する必要があることです。 さらに、Excelは行を部分に分割し、検索と置換のメモ帳++が行ごとに置換を実行します。
一般的に、xlsファイルを自分でhtmlに保存してから、メモ帳++でhtmlを開いてみてください。
つまり 問題があります。 そして一見-解決できません。 私が言ったように、私は怠け者であり、自分のプラグインを書くことも、メモ帳++コードをすばやく修正することもできません。
しかし、Googleには、選択したテキストを任意のコンソールアプリケーションで処理できる素晴らしいPork2Sausageプラグインがあると言われています。
私はすぐにこのプラグインをダウンロードし、c#でアプリケーションを作成しました...そして、私はそれが役に立たないことに気付きました。
何らかの理由で、ロシアの手紙はひどくゆがんでいた。
私はあきらめたくありませんでした。なぜなら、私はPork2Sausageのソースをダウンロードし、恐れてそれを開いたからです。 それはそれほど怖くないことが判明しました。 コードは単純で、私は本当に理解していなかった混乱した部分を修正する必要がありました。 そしてそれは働いた。 UTF-8のテキストに対してのみtrueですが、これで十分でした。
今私は次のことができます:
- ワンボタンできれいなタグ
- テキストを変更するための新しいユーティリティを作成します。 多くの場合に非常に便利です。 たとえば、メモ帳++で、タグを使用してhabrahabrからすべてのテキストを取得するユーティリティを作成できます。 まあ、または他の愚かさ
このために何をしなければなりませんでした。
ポーク2ソーセージ
コード:
std::string inputA = pAsciiText;
std::wstring inputW(inputA.begin(), inputA.end());
inputW.assign(inputA.begin(), inputA.end());
selectedText += inputW;
に置き換えます:
size_t templen = 0;
while (pAsciiText[templen]!=L'\0' && templen <= asciiTextLen) templen++;
templen = (templen-1)/sizeof(wchar_t);
wchar_t *inputW = new wchar_t[templen];
wcsncpy(inputW,pAsciiText,templen);
selectedText += inputW;
さて、launchProgram関数を追加しました。
char* filename;
if (progInputStr != TEXT("")) {
filename = new char[progInputStr.length()];
wcstombs(filename,progInputStr.c_str(),progInputStr.length()+1);
remove(filename);
}
if (progOutputStr != TEXT("")) {
filename = new char[progOutputStr.length()];
wcstombs(filename,progOutputStr.c_str(),progOutputStr.length()+1);
std::remove(filename);
}
ファイルが生成されないようにします。
確かに私は愚かで最適ではありませんでしたが、うまくいきました。
実際にクリーニングスクリプト
コードを使用してC#でコンソールアプリケーションを作成しました。
string strAll="";
strAll = File.ReadAllText("C:\\tmp\\in_"+args[2]);
Regex reg = new Regex(args[0]);
strAll = strAll.Replace("\r\n", " \r\n");
strAll = reg.Replace(strAll, args[1]);
strAll = strAll.Replace(" \r\n", "\r\n");
File.WriteAllText("C:\\tmp\\out_" + args[2], strAll);
コードも見事ではありません。
構成可能
iniファイルで書いたPork2Sausage
[excel_convertor]
progPath=C:\regexp_notepad\bin\Release\regexp_notepad.exe
progCmd=regexp_bstd "<([az]*) [^>]*>" "<$1>" "$(TIMESTAMP)"
workDir=C:\regexp_notepad\bin\Release\
progInput=C:\tmp\in_$(TIMESTAMP)
progOutput=C:\tmp\out_$(TIMESTAMP)
それだけです すべてが機能します。
また、ほとんどの問題を解決するためにスーパープログラマである必要はありません。
最後まで読んだ人は、おそらくこの種のLifeHacksを持っているでしょう。 共有しましょう。
そして、私は質問を繰り返します。
プログラマーには幅広い知識が必要ですか? たとえば、PHPプログラマーであればJavaScriptタスクを恐れないでください。 できるようにするには、ExcelやVisualBasicを使用する必要がある場合、MS SQL、ピボットテーブル、その他のキューブを恐れないでください。
またはそれはすべて汚れたものであり、雇用主がすべての資料(レポート、正しい形式のデータなど)を提供しなかった場合、あなたは何もせずに待つことができますが、それを行う必要がある場合、当局は詳細を理解していませんか?