Frage

Ich möchte String-Daten von einigen Textbinärdateien schaben die SQL-Anweisungen eingebettet enthalten. Ich habe keine Lust Bereinigung brauchen - nur eine Möglichkeit den lesbaren Text zu extrahieren. Ich verwende vb.net, aber ein Anruf an ein externes Dienstprogramm würde auch funktionieren.

War es hilfreich?

Lösung 4

Vielen Dank an Alle. Große Ideen. Hat mir wirklich geholfen zu denken. Upvotes ringsum. Schließlich brauchte ich nicht ganz sicher sein, dass sie Strings waren, damit ich mit einem schnellen ging, schlampig, hässlich, Hack.

 'strip out non-string characters 
 For Each b As Byte In byteArray
      If b = 9 Or b = 10 Or b = 13 Or (b > 31 And b < 127) Then
          newByteArray(i) = b.ToString
          i += 1
      End If
  Next

  'move it into a string
  resultString = System.Text.Encoding.ASCII.GetString(newByteArray)

Andere Tipps

Das GNU Strings Dienstprogramm schon seit ewigen Zeiten hat und tut mehr oder weniger genau dies durch eine Heuristik mit beliebigen Daten zerren, dass „wie ein String aussieht“ aus einem binären.

Besorgen Sie sich das GNU binutils (einschließlich Strings) für Win32 von MinGW:   http://sourceforge.net/projects/mingw/files/ .

Das ist nicht so trivial, wie es zunächst scheinen mag. Ein String kann auf vielfältige Weise codiert werden. Was Sie berücksichtigen „lesbaren Text“, wie sehen Sie die nicht lesbaren Teile? Sagen Sie es wie folgt aussieht:

 &8)JÓxZZ`\■£ÌS?E?L?E?C?T?*?F?R?O?M?m?y?T?b?l?§ıÍ4¢

Sie haben Glück, weil es wahrscheinlich UTF-16 codiert wird, verwendet oder eine andere Mehrbyte-Kodierung. Diese sind ziemlich trivial zu erkennen. Aber in fast allen anderen Fällen (UTF-8, ISO-8859-1 Windows-1252) ist es so gut wie unmöglich ist, einen individuellen Charakter für sein Text oder Nicht-Text zu unterscheiden, es sei denn, Sie fair behandelt, wie eine bestimmte wissen „Klartext“ beginnt und wie es endet.

Der Punkt ist: alles ist erlaubt und lesbarer Text betrachtet. UTF-8, ASCII und Windows-1252 erlauben sogar NULL-Zeichen (während einige Programmiersprachen nicht). Hier ist ein Thread , die ein VB Beispiel dafür, wie gibt man vorgehen kann, ist es könnten Sie einige Hinweise.

PS: diese Art der Analyse von Daten schwierig sein kann, wird es eine große Hilfe, wenn Sie Ihre Datei irgendwo hochladen können, so dass wir einen Blick haben kann

.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top