問題タブ [nsscanner]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
objective-c - NSData および NSCoding を使用した iOS カスタム ファイル形式の読み込み
メモリ内で使用するモデル オブジェクトにカスタム ファイル形式をロードして解析するメカニズムを実装する方法について、一部の iOS Cocoa プログラマーからのガイダンスを探しています。この問題を解決するには多くの方法があるに違いないことは承知していますが、私が探求した現在の道の基本的な考え方と、行き詰まった場所を共有させてください。
しかし、最初に、コンテキストを示します。変更できない既存のファイル形式があるとします。これは基本的に、パイプで区切られたエキゾチックな形式で、さまざまなセクションに分かれており、それぞれが次のように始まります。
...そして、それに続く n 行はすべて、そのセクションに固有の方法でパイプで区切られています。一部のセクションにはパイプで区切られたヘッダー行があり、その後に n 行のデータ (これもパイプで区切られています) が続き、他のセクションにはパイプで区切られた n 行しかない場合があります。ファイルの先頭に向かっていくつかの短いセクションがあり、最後に k-ary ツリーのノードを説明する 1 つの巨大なセクションがあります: それらの親子関係と各ノードに関連付けられたデータです。これらのファイルのサイズは数十メガバイトで、将来的にはさらに大きくなる可能性があります。
最後に、私は iOS プログラミングにかなり慣れていないということです。
を使用NSFileHandle
して、ファイルの表現を のインスタンスとして取得することから始めましたNSData
。これは非常に簡単で、NSData
インターフェイスを調べてそこから先に進む方法を試してみると、NSCoding
プロトコルに気付きました。これは、オブジェクトを表現に (および表現から) アーカイブおよびシリアル化するための機能であると主張しています。
ファイル形式は、モデル オブジェクトをマーシャリングできる単なる表現であると考える傾向があるため、これは必要かもしれないと思いました。しかし、「Archives and Serializations Programming Guide」を掘り下げた後、私は自分自身を推測し始めました。この API は、私が達成しようとしていることに役立たないようです。
私はここで袋小路を下っていますか?代わりにサブクラス化しようとする必要がありNSInputStream
ますか、それとも私が見逃している他のアプローチを取る必要がありますか?
iphone - NSScanner を使用して NSString を抽出する
AllContacts からデータを取得しています。そのデータでは、(998) 989-8989 などの連絡先の詳細を取得しています。この番号を使用すると、電話をかけることができません。誰でもこれを手伝ってもらえますか? 前もって感謝します。
objective-c - NSString ステートメントで NSScanner を使用しようとすると、エラー メッセージが表示されるのはなぜですか?
エラーメッセージが表示される理由を知りたい
このコード行を使用すると:
エラーは次のとおりです。
ありがとうございました。
objective-c - CSV の解析: NSScanner はどのように空のフィールド (つまり、,) を認識できますか?
私は Xcode に非常に慣れておらず、CSV ファイルを解析しようとしています。私は多くの投稿を読み、それを管理していますが、NSScanner が空のフィールド「Field_A、Field_B、、Field_D」をインターセプトすると問題が発生します。デフォルトでは空のスペースを無視するか、この場合はスペースをまったく無視するためだと思います。
文字列は次のとおりです。
"個人","2011-01-01","個人","タバコ",,4.60,"現金","",
scanLocation を使用してデバッグしようとしました:
その後でわかるように、経費フィールドにも値がありません (4.60 のはずです)。
関連するコードは次のとおりです。
NSScanner クラス リファレンスを注意深く調べてみましたが、アイデアが得られませんでしたか? あなたがいずれかを持っている?
ありがとう、ファブリツィオ。
iphone - IB 接続における NSScanner の問題
ばかげた質問かもしれませんが、NSScanner に問題があります。テキストを取得する必要がある UITextField があります。Interface Builder で NSScanner フィールドを接続できないようです。助けていただけますか?
私のファイルには次のコードがあります:
iphone - iPhone-NSScannerは解析しません
私はこのメソッドを使用して、文字列(XMLコンテンツ)への最初の<>カップルを見つけています:
ただし、「位置0で見つかった'<'」のみがログに記録されます。私のXMLコンテンツには多くの<>アイテムが含まれています...
その方法が機能しないのはなぜですか?
iphone - NSScannerループの質問
NSScanner
HTMLドキュメントをスキャンして段落タグを探すオブジェクトがあります。スキャナーは最初に見つかった結果で停止するようですが、すべての結果を配列で処理する必要があります。
ドキュメント全体を処理するようにコードを改善するにはどうすればよいですか?
iphone - NSScannerを使用したセクションの文字列の解析
次のような形式の文字列を解析しようとしています。
等
日付の数、バンドの数、および関連する会場は異なる場合があります。このページの下部にある例に基づいたコードを使用しています。
私はこのコードスニペットを使用しています(関連性がないため、下部のビットは省略しましたが、ループを閉じますなど):
現在、最初の日付が解析されてコンソールに印刷され、その日付の最初の会場とバンドが印刷されます。「スキャン終了」は印刷されません。私はこれと何時間も戦ってきましたが、今何をすべきかわかりません。NSScannerの内部動作がわからないような気がしますが、この問題に取り組むには別の方法があるのではないでしょうか。たぶん私は2番目のスキャナーが必要ですか?
cocoa - NSScanner を使用して ^[a-zA-Z_][a-zA-Z0-9_]* の形式でスキャンする方法
NSScanner で正規表現 [a-zA-Z_][a-zA-Z0-9_]* をスキャンしようとしていますが、問題があります。
最初に a-Z_ を読み取ってから、a-Z0-9_ を追加しようとすることができます。
これを行うためのより簡単で効率的な方法があるかどうか疑問に思っています。教えてください、ありがとう。
明確化: 正規表現を実行しようとしているわけではありません。上記の正規表現のような文字列を読み取ろうとしています。C スタイルの変数に似たもの。基本的に、任意の英数字の単語ですが、数字で始まってはいけません。
明確化 2: スキャナーに読み取らせようとしています ([] は各読み取りトークンを示します): "test 3" as [test, 3] "test3" as [test3] "3test" as [3, test] "_3test" [_3test] として "_3 テスト" [ 3, テスト]として "3 3test" [ , 3, 3, テスト]として "3 テスト 3" [_, 3 , テスト 3] として
objective-c - iOS/Objective-C: 複数の NSString に割り当てられる部分文字列の文字列をスキャンしようとしています
スタンフォード iPhone プログラミング (FA10) の課題「Flickr Fetcher」を完了しようとしています。これまでのところ順調に進んでいますが、行き詰まりに陥っています。
「国、州、都市」の文字列でフォーマットされた「トップ 100」の写真の場所を正常に抽出しました。2 つの NSString を作成したいと思います。1 つは国、もう 1 つは州と市です。私ができるところから
私のテーブルビューのデータソースメソッドで。
stackoverflow とApple Documentaionに関する調査 から、NSScanner が私の最善の策のようです。これが私がこれまでに持っているものです...
文字列が適切にサブストリング化されているかどうかを確認しようとしていますが、while ループの開始時に「SIGBART」が表示されます。エラーは次のとおりです。
NSScanner で見たすべてのドキュメントから、適切にセットアップされているように見えますが、どのような変更を加えても、ループを開始することさえできないようです。
「SIGABRT」を回避するために、NSScanner を適切にセットアップするにはどうすればよいですか? (記録のために、「SIGABRT」はセグメンテーション違反だと思いますか?)。時間をありがとうございました、皆さん最高です!
(ちなみに、これは国と州の両方でまだ完全に実装されていないことを知っています。NSScannerに慣れたいだけです。NSScannerを制御できるようになったら、残りを実装します)
編集 1: SosBorn! あなたは素晴らしい!どうもありがとう!だから私は私のviewDidLoadのためにこれを実装しました:
これは完全な魅力のように機能しましたが、アクセスしようとするとデリゲートでいくつかの悪いアクセスが発生していますself.window.rootViewController = self.viewController
-これは意味がありません(実際には完全に空のテーブルなどがあります...)-私は部分文字列化で悪いメモリ管理をして遊んだと思っていますが、今ではこのデリゲート呼び出しで問題が発生しています。
チャック、変数を作成する適切な方法は [myclass alloc] init]; を呼び出すことだと教えられたので、あなたのコメントに非常に興味がありました。そして、終わったら放します - 私のように。もちろん、Objective-C の緑色は少し見えています...赤面.
皆さんとこの素晴らしいコミュニティは、私たち学生にとって非常に貴重な財産です。あなたの時間と献身に感謝します。進歩への唯一の道は協力の道です!
編集 2: わかりました - これで完全に修正され、ひどい漏れの問題はなくなりました。チャック、あなたは正しかった!alloc init の原則が頭の中で完全に混乱していました。これが私の最終的な解決策です。
SosBorn さん、ありがとうございます。CS ಠ_ಠ の基本を忘れていた気がしました。本当に気になる唯一のことは、なぜインスタンス NSMutableArrays をそのように初期化する必要があるのか ということです.これが、それらを実際に機能させる唯一の方法であることがわかりました。